我的开发环境是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,方便的话我希望能语音交流,因为感觉好像就这么说不清楚非常感谢!

解决方案 »

  1.   

    <html:link forward="center">这一个"center"好像不对吧?
    你本来想要的大概是"center.do"吧?
      

  2.   

    是的, 但这个<html:link forward="center">我在下面这里已经定义了呀
     <global-forwards>
       <forward name="login" path="/jsp/login.jsp"></forward>
       <forward name="center" path="/center.do"></forward>
      </global-forwards>
      

  3.   

    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/ 下。真若如此,楼主就太马虎了些。:)
      

  4.   

    center.jsp 真的在/jsp/ 目录里,我什么地方都检查过了。这个问题都三四天了,都没法解决,着急啊。
    楼上的能加我QQ么? 或者留你的QQ,我加你。
    因为身边都没有用这个框架的朋友,所以,自己一个弄比较郁闷。
      

  5.   

    /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");
        }
    }以上代码已经测试通过。
      

  6.   

    我的文件跟你的差不多的啊,可是就是出错。我把出错信息开放出来看了,如下所示:
    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 ,但我把用到它的代码注释调了。
    剩下的代码就是上面贴出来的。
      

  7.   

    终于找到问题所在了。
    是我在 center.jsp 文件里注释掉的代码做的怪,以后不能.jsp 文件里注释代码了,得把不要的代码删除,这样就不会出错了。
    我最后贴除的错误提示,就是因为程序运行的时候还执行了我在 center.jsp 文件里注释掉的代码。唉! 初次接触,所以,常犯一些低级错误。
      

  8.   

    晕倒。。我觉得不是“以后不能.jsp 文件里注释代码了”,
    而是你的注释方式不正确。JSP的Java脚本里面应该使用 <%-- --%> 的方式进行注释,
    而不是HTML用的 <!-- --> 。你好歹检查一下看看。。