将struts-config-user.xml中的path="/user/userLogin"改为path="/userLogin"

解决方案 »

  1.   

    另外在web.xml中
    <init-param>
          <param-name>config/user</param-name>
          <param-value>/WEB-INF/config/struts-config-user.xml</param-value>
    </init-param>
    应该改成
    <init-param>
          <param-name>config/user</param-name>
          <param-value>/WEB-INF/user/struts-config-user.xml</param-value>
    </init-param>
    struts-config.xml和struts-config-user.xml最好不要在相同的路径下
    <param-name>config/user</param-name>和<param-value>/WEB-INF/user/struts-config-user.xml</param-value>中的user应该保持相同
      

  2.   

    你在WEB-INF下应该新建一个user文件夹,然后将struts-config-user.xml放在里面
      

  3.   

    高手,按你说的我已经在web-inf下建了一个目录user,把struts-config-user.xml放进去了
    然后在root下建了一个user,把login.jsp放进去了
    然后现在的web.xml配置如下:
    <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/config/struts-config.xml</param-value>
        </init-param>
         <init-param>
          <param-name>config/user</param-name>
          <param-value>/WEB-INF/user/struts-config-user.xml</param-value>
        </init-param>
    struts-config-user.xml配置如下:
        <action input="/user/login.jsp" 
           name="memberForm"
                   parameter="call"
           path="/userLogin" 
           scope="session" 
           type="com.dodo.struts.action.UserLoginAction" 
           validate="true">  
           <forward name="suc" path="/member.jsp" />
           <forward name="loginFail" path="/login.jsp" />
        </action>
    页面如下:
    <html:form action="/userLogin.do?call=login" method="post" onsubmit="return validateMemberForm(this);">
    <table width="452" height="263"  border="0" align="center" cellpadding="0" cellspacing="5" background="../images/login-Bg.jpg">
                  <tr valign="bottom">
                    <td width="39%" height="87"><div align="right"><bean:message key="member.email" bundle=""/></div></td>
                    <td width="61%">
                      <div align="left"><html:text property="email" styleClass="form-border" size="17" maxlength="25"/> </div></td>
                  </tr>
                  <tr>
                    <td height="106"><div align="right"><bean:message key="member.password" bundle="" /></div></td>
                    <td>
                      <div align="left"><html:password property="password" styleClass="form-border" size="17" maxlength="25"/> </div></td>
                  </tr>
                  <tr>
                    <td height="24" colspan="2"><table width="80%"  border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                        <td><html:submit styleClass="form-border"/></td>
                        <td><html:cancel styleClass="form-border"/></td>
                      </tr>
                    </table></td>
                    </tr>
                  <tr>
                    <td height="18">&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                </table>
    </html:form>
    <html:javascript formName="memberForm"/>
    错误信息还是找不到action:
    javax.servlet.ServletException: Cannot retrieve mapping for action /userLogin
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
    org.apache.jsp.user.login_jsp._jspService(org.apache.jsp.user.login_jsp:110)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
    com.dodo.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:63)
    org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
    跪求高手
      

  4.   

    web.xml部分配置如下:
    <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/config/struts-config.xml,
                       /WEB-INF/config/struts-config-user.xml,
                       /WEB-INF/config/struts-config-product.xml
          </param-value>
        </init-param>     <load-on-startup>1</load-on-startup>
      </servlet>配在一起试试!!!!
      

  5.   

    将struts-config-user.xml中的path="/user/userLogin"改为path="/userLogin"这一步做了吗?
    你现在的错误好像和web.xml没有关系,应该是struts-config-user.xml中的错误。
      

  6.   

    问题一样啊,但是我的path=/toUpload,错误提示差不多啊
    javax.servlet.ServletException: Cannot retrieve mapping for action /toUpload
    .....
      

  7.   

    想了办法,
    1。原来的链接路径是:
    index.jsp-->upload/upload.jsp-->/toUpload.do?method=uploadFile-->success.jsp2。现在改成:
    index.jsp-->/toUpload.do?method=changePath-->upload/upload.jsp-->/toUpload.do?method=uploadFile-->success.jsp就解决问题了,有点繁琐,当然用switchaction应该可以解决,准备看。
    原因可能是:按1,在多模块下index.jsp属于默认模块,而upload.jsp属于upload模块,直接通过<html:link page="/upload/upload.jsp">upload 1</html:link>并没有从默认模块转到upload模块,还是会从默认配置中找,所以,upload.jsp中<html:form action="****">中***是/toUpload,/toUpload.do,/upload/toUpload....等都会报javax.servlet.ServletException: Cannot retrieve mapping for action /toUpload 的异常
    按2,index.jsp和upload.jsp通过upload的action转一下,<html:link page="/upload/toUpload.do?method=uploadFile">upload 2</html:link>会从默认模块转到upload模块中,用<html:link module="/upload" action="/toUpload.do?method=uploadFile">upload 2</html:link>可能清晰点
      

  8.   

    应该是:
    <param-name>config/user</param-name>

    config/user
    不能带有'/'符号,用下划线'_'应该好一点
      

  9.   

    <init-param>
             <param-name>config</param-name>        
             <param-value>/WEB-INF/ht/struts-config.xml,/WEB-INF/ht/struts-config-hy.xml,/WEB-INF/ht/struts-config-fqq.xml</param-value>
          </init-param>
      

  10.   

    楼上是对的
    <init-param>是给个属性装数据,只能是config。struts支持用逗号分开的多个值
    如果为了好看,可以用CDATA签
    <init-param>
        <param-name>config</param-name>        
        <param-value>
             <![CDATA[
             /WEB-INF/ht/struts-config.xml
            ,/WEB-INF/ht/struts-config-hy.xml
            ,/WEB-INF/ht/struts-config-fqq.xml
            ]]>
        </param-value>
    </init-param>
      

  11.   

    <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml,
             /WEB-INF/struts-config-1.xml,
             /WEB-INF/struts-config-2.xml,
             /WEB-INF/struts-config-3.xml
          </param-value>
      

  12.   


    web.xml
            <init-param>
                <param-name> config </param-name>
                <param-value> /WEB-INF/struts-config.xml </param-value>
            </init-param>    
            <init-param>
                <param-name> config/user </param-name>
                <param-value> /WEB-INF/struts-config-user.xml </param-value>
            </init-param>  
    struts-config-user.xml
        <action-mappings   type= "org.apache.struts.action.ActionMapping ">    
              <action
              attribute= "userForm "
              input= "/user/userBas.jsp "
              name= "userForm "
              path= "/insertUser "  
                  type= "com.aaa.action.user.StarAction "
                  scope= "request "
                  validate= "false ">
                <forward
                name= "success "
                contextRelative= "true "
                path= "/star/admin.jsp "   />            
              </action>
        </action-mappings>
    userBas.jsp
    <form   action= "/insertUser .do "> 
    </form>
      

  13.   

    <form action= "/insertUser.do">
    <html:form action= "/insertUser.do">
    两者的action是不一样的
    struts的html:form在解析成form时,会在原始action前面加入模块名