救急! myeclipse3.1 + struts1.2 + tomcat5.0 的问题

halfheart 2006-02-25 03:13:15
我的开发环境是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,方便的话我希望能语音交流,因为感觉好像就这么说不清楚

非常感谢!
...全文
107 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
梦想家烟灰 2006-02-26
晕倒。。我觉得不是“以后不能.jsp 文件里注释代码了”,
而是你的注释方式不正确。

JSP的Java脚本里面应该使用 <%-- --%> 的方式进行注释,
而不是HTML用的 <!-- --> 。

你好歹检查一下看看。。
回复
halfheart 2006-02-26
终于找到问题所在了。
是我在 center.jsp 文件里注释掉的代码做的怪,以后不能.jsp 文件里注释代码了,得把不要的代码删除,这样就不会出错了。
我最后贴除的错误提示,就是因为程序运行的时候还执行了我在 center.jsp 文件里注释掉的代码。

唉! 初次接触,所以,常犯一些低级错误。
回复
halfheart 2006-02-25
我的文件跟你的差不多的啊,可是就是出错。

我把出错信息开放出来看了,如下所示:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

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 ,但我把用到它的代码注释调了。
剩下的代码就是上面贴出来的。
回复
doway 2006-02-25
/jsp 与 /WEB-INF 位于同一个目录。

/jsp/main.jsp 如下:
<%@ 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");
}
}

以上代码已经测试通过。
回复
halfheart 2006-02-25
center.jsp 真的在/jsp/ 目录里,我什么地方都检查过了。这个问题都三四天了,都没法解决,着急啊。
楼上的能加我QQ么? 或者留你的QQ,我加你。


因为身边都没有用这个框架的朋友,所以,自己一个弄比较郁闷。
回复
doway 2006-02-25
main.jsp 文件中 <html:link forward="center">,因为在 struts-config.xml 中有对应的
<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/ 下。

真若如此,楼主就太马虎了些。:)
回复
halfheart 2006-02-25
是的, 但这个<html:link forward="center">我在下面这里已经定义了呀
<global-forwards>
<forward name="login" path="/jsp/login.jsp"></forward>
<forward name="center" path="/center.do"></forward>
</global-forwards>
回复
梦想家烟灰 2006-02-25
<html:link forward="center">

这一个"center"好像不对吧?
你本来想要的大概是"center.do"吧?
回复
halfheart 2006-02-25
怎么现在问问题都没有人回答了呢?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-02-25 03:13
社区公告
暂无公告