100求助,在线等:struts 配置多应用模块出错
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
<html:form action= "/insertStar.do ">
</html:form>
错误提示:
javax.servlet.ServletException: Cannot retrieve mapping for action /insertUser
错误描述:
struts配置多应用模块出错
如果把 <html:form> 换成 <form> 并且写成 <form action= " <%=request.getContextPath()%> /star/insertStar.do "> 的形式,就没问题
action使用.............:8080/user/insertUser.do可以直接执行
------解决方案--------------------呵呵,不明白你在说什么
------解决方案--------------------配置多模块的时候,需要在不同的模块之间进行转发的,可以在默认配置文件中声明一个SwitchAction用来不同模块之间的转发;如果我没记错的话,配置好后 <html:form action= "/user/HelloWorld.do "这样使用;
另外还有个简单的方法,缺点是不能扩展控制器、资源文件等。
如下,在config的值里追加子模块的名字
web.xml
<init-param>
<param-name> config </param-name>
<param-value> /WEB-INF/struts-config.xml,/WEB-INF/struts-config-user.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>
------解决方案-------------------- <form action= "/HelloWorld2.do ">
<html:form action= "/HelloWorld2.do ">
两者的 action 是不一样的
struts 的 html:form 在解析成 form 时, 会在原始 action 前面加入模块名
------解决方案--------------------同样的问题。。。。
我的是直接用 <html:link/> 链接到上传页,也就是从默认模块到子模块中,想用 <html: