struts多模块配置问题 将struts-config-user.xml中的path="/user/userLogin"改为path="/userLogin" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 另外在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应该保持相同 你在WEB-INF下应该新建一个user文件夹,然后将struts-config-user.xml放在里面 高手,按你说的我已经在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"> </td> <td> </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)跪求高手 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>配在一起试试!!!! 将struts-config-user.xml中的path="/user/userLogin"改为path="/userLogin"这一步做了吗?你现在的错误好像和web.xml没有关系,应该是struts-config-user.xml中的错误。 问题一样啊,但是我的path=/toUpload,错误提示差不多啊javax.servlet.ServletException: Cannot retrieve mapping for action /toUpload..... 想了办法,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>可能清晰点 应该是:<param-name>config/user</param-name>中config/user不能带有'/'符号,用下划线'_'应该好一点 <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> 楼上是对的<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> <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> 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> <form action= "/insertUser.do"><html:form action= "/insertUser.do">两者的action是不一样的struts的html:form在解析成form时,会在原始action前面加入模块名 如何将网站用户和电脑绑定?即一机一码 s:select multiple="true" 不能实现多选 请教一传值问题 谁帮我解释下这段简单的extjs代码 我想转型 配置hibernate映射问题 Java 2006回顾与总结,Java 2007展望与预测 两服务器间XML传输和解析问题 谁用过开源openSaml这个东东做过单点登录 各位帮忙:在MessageDrivenBean中如何使用事务处理。 (高分求救)HIbernate 实现表左连接(高手进)(在线等) JSP 调用 Linux shell写文件, 然后读取文件的问题!
<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应该保持相同
然后在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"> </td>
<td> </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)
跪求高手
<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>配在一起试试!!!!
你现在的错误好像和web.xml没有关系,应该是struts-config-user.xml中的错误。
javax.servlet.ServletException: Cannot retrieve mapping for action /toUpload
.....
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>可能清晰点
<param-name>config/user</param-name>
中
config/user
不能带有'/'符号,用下划线'_'应该好一点
<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>
<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>
<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>
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>
<html:form action= "/insertUser.do">
两者的action是不一样的
struts的html:form在解析成form时,会在原始action前面加入模块名