我的开发环境是eclipse3.1 + myeclipse4.1 + struts + 1.2 ,现在做了个web 工程。
流程是这样的:登录页面-(登录成功进入)主页面-(在主页面选择功能菜单后进入)显示数据页面
对应的文件如下:
login.jsp,loginForm.java, loginAction.java
main.jsp,
center.jsp, CenterAction.java我的struts-config.xml 文件是这样配置的:
<struts-config>
<data-sources >
//为了节约篇幅这里省略
</data-sources>
<form-beans>
<form-bean name="LoginForm" type="com.xineng.main.action.LoginForm"></form-bean>
</form-beans>
<global-forwards>
<forward name="login" path="/jsp/login.jsp"></forward>
<forward name="center" path="/center.do"></forward>
</global-forwards>
<action-mappings>
<action path="/login"
type="com.xineng.main.action.LoginAction"
name="LoginForm"
scope="request"
validate="true"
input="/jsp/login.jsp">
<forward name="success" path="/jsp/main.jsp"></forward>
</action>
<action path="/center"
type="com.xineng.main.action.CenterAction"
scope="request">
<forward name="success" path="/jsp/center.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.xineng.struts.ApplicationResources" />
</struts-config>main.jsp文件如下代码(省略了头部分自动生成的代码)
<html:html lang="true">
<head>
<html:base />
<title><bean:message key="main.title"/></title>
</head>
<body>
<table border="0">
<tr>
<td><html:link forward="center"><bean:message key="center.title"/></html:link></td>
</tr>
</table>
</body>
</html:html>CenterAction.java 文件代码如下:
public class CenterAction extends Action {
public ActionForward execute(ActionMapping mapp, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String target="success";
return mapp.findForward(target);
}
}center.jsp 代码如下(什么都不填):
<html:html lang="true">
<head>
</head>
<body>
This is the Center Info.
</body>
</html:html>我砰到的问题是:
登录成功后,已经显示主页面了(main.jsp),在main.jsp 选择了链接后,就显示如下错误:
找不到网页
您要查看的网页可能已被删除、名称已被更改,或者暂时不可用。 --------------------------------------------------------------------------------请尝试以下操作:如果您已经在地址栏中输入该网页的地址,请确认其拼写正确。打开 localhost:8080 主页,然后查找指向您感兴趣信息的链接。
单击后退按钮,尝试其他链接。
单击搜索,寻找 Internet 上的信息。 HTTP 404 - 未找到文件
Internet Explorer
这个问题郁闷了我好几天了,都没解决,请高手帮个忙。
我的QQ是:8814453,方便的话我希望能语音交流,因为感觉好像就这么说不清楚非常感谢!
流程是这样的:登录页面-(登录成功进入)主页面-(在主页面选择功能菜单后进入)显示数据页面
对应的文件如下:
login.jsp,loginForm.java, loginAction.java
main.jsp,
center.jsp, CenterAction.java我的struts-config.xml 文件是这样配置的:
<struts-config>
<data-sources >
//为了节约篇幅这里省略
</data-sources>
<form-beans>
<form-bean name="LoginForm" type="com.xineng.main.action.LoginForm"></form-bean>
</form-beans>
<global-forwards>
<forward name="login" path="/jsp/login.jsp"></forward>
<forward name="center" path="/center.do"></forward>
</global-forwards>
<action-mappings>
<action path="/login"
type="com.xineng.main.action.LoginAction"
name="LoginForm"
scope="request"
validate="true"
input="/jsp/login.jsp">
<forward name="success" path="/jsp/main.jsp"></forward>
</action>
<action path="/center"
type="com.xineng.main.action.CenterAction"
scope="request">
<forward name="success" path="/jsp/center.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.xineng.struts.ApplicationResources" />
</struts-config>main.jsp文件如下代码(省略了头部分自动生成的代码)
<html:html lang="true">
<head>
<html:base />
<title><bean:message key="main.title"/></title>
</head>
<body>
<table border="0">
<tr>
<td><html:link forward="center"><bean:message key="center.title"/></html:link></td>
</tr>
</table>
</body>
</html:html>CenterAction.java 文件代码如下:
public class CenterAction extends Action {
public ActionForward execute(ActionMapping mapp, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String target="success";
return mapp.findForward(target);
}
}center.jsp 代码如下(什么都不填):
<html:html lang="true">
<head>
</head>
<body>
This is the Center Info.
</body>
</html:html>我砰到的问题是:
登录成功后,已经显示主页面了(main.jsp),在main.jsp 选择了链接后,就显示如下错误:
找不到网页
您要查看的网页可能已被删除、名称已被更改,或者暂时不可用。 --------------------------------------------------------------------------------请尝试以下操作:如果您已经在地址栏中输入该网页的地址,请确认其拼写正确。打开 localhost:8080 主页,然后查找指向您感兴趣信息的链接。
单击后退按钮,尝试其他链接。
单击搜索,寻找 Internet 上的信息。 HTTP 404 - 未找到文件
Internet Explorer
这个问题郁闷了我好几天了,都没解决,请高手帮个忙。
我的QQ是:8814453,方便的话我希望能语音交流,因为感觉好像就这么说不清楚非常感谢!
你本来想要的大概是"center.do"吧?
<global-forwards>
<forward name="login" path="/jsp/login.jsp"></forward>
<forward name="center" path="/center.do"></forward>
</global-forwards>
<forward name="center" path="/center.do"> 和 <action path="/center",因此不会出问题。在 CenterAction.java 文件有:
String target="success";
return mapp.findForward(target);又在配置文件有对应的定义:
<forward name="success" path="/jsp/center.jsp">唯一可能的原因就是 center.jsp 这个文件不在 /jsp/ 下。真若如此,楼主就太马虎了些。:)
楼上的能加我QQ么? 或者留你的QQ,我加你。
因为身边都没有用这个框架的朋友,所以,自己一个弄比较郁闷。
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:html>
<head>
<title>
main
</title>
</head>
<body bgcolor="#ffffff">
<h1>
main.jsp
</h1>
<html:link forward="center">center</html:link>
</body>
</html:html>
/jsp/center.jsp 如下:
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>
center
</title>
</head>
<body bgcolor="#ffffff">
<h1>
center.jsp
</h1>
</body>
</html>
struts-config.xml 中部分内容:
<struts-config>
<global-forwards>
<forward name="center" path="/center.do" />
</global-forwards>
<action-mappings>
<action path="/center" type="hello.CenterAction">
<forward name="success" path="/jsp/center.jsp" />
</action>
</action-mappings>
<message-resources parameter="ApplicationResources" />
</struts-config>
CenterAction 类如下:
package hello;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;public class CenterAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
return mapping.findForward("success");
}
}以上代码已经测试通过。
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Cannot find bean centerBean in any scope
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:673)
org.apache.jsp.jsp.center_jsp._jspService(center_jsp.java:276)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause javax.servlet.jsp.JspException: Cannot find bean centerBean in any scope
org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:934)
org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:232)
org.apache.jsp.jsp.center_jsp._jspService(center_jsp.java:166)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.我的工程里是有centerBean 这个bean ,但我把用到它的代码注释调了。
剩下的代码就是上面贴出来的。
是我在 center.jsp 文件里注释掉的代码做的怪,以后不能.jsp 文件里注释代码了,得把不要的代码删除,这样就不会出错了。
我最后贴除的错误提示,就是因为程序运行的时候还执行了我在 center.jsp 文件里注释掉的代码。唉! 初次接触,所以,常犯一些低级错误。
而是你的注释方式不正确。JSP的Java脚本里面应该使用 <%-- --%> 的方式进行注释,
而不是HTML用的 <!-- --> 。你好歹检查一下看看。。