程序采用struts1+spring2.5+ibatis
就完成一个简单的用户登录功能
运行时jsp页面提交的action路径老是找不到
我看不出哪里配制有问题
求高手帮忙运行结果:
HTTP Status 404 - /loginAction--------------------------------------------------------------------------------type Status reportmessage /loginActiondescription The requested resource (/loginAction) is not available.
--------------------------------------------------------------------------------Apache Tomcat/6.0.14jsp页面核心代码:
    <form name="loginForm" action="/loginAction" method="post" OnSubmit="return mycheck()">
     <table>
     <tr><td>用户名:</td><td width="100"><input name="userName" type="text"/></td></tr>
     <tr><td>密&nbsp;  码:</td><td width="100"><input name="password" type="password"/></td></tr>
     <tr><td height="20" align="center" rowspan="2"><input type="submit" name="Submit" value=" 登录 " Onclick="javascript:return(mycheck());"></td></tr>
     </table>  
    </form>
web.xml核心配制
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/applicationContext.xml</param-value>
    </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
spring核心配制
<bean name="/loginAction" class="com.lee.action.LoginAciton">
<property name="loginDao">
<ref bean="loginDAO"/>
</property>
</bean>

<bean id="loginDAO" class="com.lee.dao.LoginDAOImpl">
<property name="sqlMapClient">
<ref bean="sqlMapClient"/>
</property>struts核心配制
  <form-beans>
  <form-bean name="loginForm" type="com.lee.form.LoginForm"></form-bean>
  </form-beans>  <action-mappings>
       <!--登录信息-->
    <action path="/loginAction" attribute="loginForm" input="login.jsp" type="org.springframework.web.struts.DelegatingActionProxy" validate="false" scope="request">
      <forward name="success" path="/loginsucc.jsp" redirect="false"/>
      <forward name="fail" path="/fail.jsp" redirect="false"/>
    </action>
  </action-mappings>
  <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
求解

解决方案 »

  1.   

    你的web.xml配置拦截的地址为*.do
    /loginAction 当然访问不了改为/loginAction.do才对
      

  2.   

    楼上的可以试试看。 还有看看你其实到底有没有发布成功。
    比如写个静态的html看看能访问不, 不是404不。
      

  3.   

    只改jsp页面的路径吧?
    改成/loginAction.do后运行结果:
    HTTP Status 404 - /loginAction.do--------------------------------------------------------------------------------type Status reportmessage /loginAction.dodescription The requested resource (/loginAction.do) is not available.
    --------------------------------------------------------------------------------Apache Tomcat/6.0.14
      

  4.   

    登录jsp可以访问,但是填入登录信息后提交就报错
      

  5.   

    我认为是两种可能,一种是你Onclick="javascript:return(mycheck())“造成的;另一种可能是你后台判断的时候,传的是对象,而你前台用户名和密码却是参数
      

  6.   

    改成OnSubmit="return mycheck()"错误不变...
    跟提交应该没关系吧
    后台将用户名和密码封装成form了么
    现在的问题是提示路径找不到
      

  7.   

    我把jsp页面的代码改为: 
    <form name="loginForm" action="loginAction" method="post" OnSubmit="return mycheck()">
      <table>
      <tr><td>用户名:</td><td width="100"><input name="userName" type="text"/></td></tr>
      <tr><td>密&nbsp; 码:</td><td width="100"><input name="password" type="password"/></td></tr>
      <tr><td height="20" align="center" rowspan="2"><input type="submit" name="Submit" value=" 登录 " Onclick="return mycheck()"></td></tr>
      </table>   
      </form>也就是提交的action里的"/"去掉了
    错误发生变化:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java.lang.NullPointerException
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause java.lang.NullPointerException
    com.lee.action.LoginAciton.execute(LoginAciton.java:44)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
    后台:
    严重: Servlet.service() for servlet action threw exception
    java.lang.NullPointerException
    at com.lee.action.LoginAciton.execute(LoginAciton.java:44)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)求解
      

  8.   

    java.lang.NullPointerException
    at com.lee.action.LoginAciton.execute(LoginAciton.java:44)空指针异常,有啥求解的,自己研究下 LoginAciton.java 的第44行代码,使用了什么可能为null的变量。
      

  9.   

    java.lang.NullPointerException
    com.lee.action.LoginAciton.execute(LoginAciton.java:44)
    说明LoginAciton第44行有使用了空指针。你看看,看不明白可以直接把LoginAciton.java的全部代码贴上来。
      

  10.   

    LoginAction中的核心代码
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    LoginForm lgForm = (LoginForm) form;

    ActionErrors errors = new ActionErrors();
    ActionForward forward = new ActionForward(); String username = lgForm.getFormusername();
    String password = lgForm.getFormpassword(); // invalidate the original session if exists
    HttpSession session = request.getSession(true);
    Mana mana;
    mana = loginDao.queryMana(username, password); // create a new session for the user
    request.setAttribute("getuser", mana);
    return mapping.findForward("success");
    }网上搜的有的说是如果有些bean没有注入就会出现空指针
    后台提示String username = lgForm.getFormusername();运行出错
    我想请问,LoginForm需要注入吗?
      

  11.   

    <input name="userName" type="text"/></td></tr>
    formbean 中属性要写成 userName吧  你的是formusername,接受得到吗
      

  12.   

    修改formbean中的变量名或页面中input的name属性名,需要保持一致。
      

  13.   

    loginAction 这里写成loginAction.do或者loginAction.action