论坛首页 Java企业应用论坛

struts中使用多模块的配置文件,找不到action的问题

浏览 9872 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-03-22  
在使用<html:form action="actionName">时,遇到这个问题,
1.在web.xml的确配置了该模块的配置文件,配置方法是按照apache的文档做的
2.把该模块的配置文件设置成默认的配置文件,可以正确访问,说明配置文件没有错误.

据我分析,是没有指定module,tag不知道到哪里去找这个action.不过我看了struts自带的例子,也就是简单的<html:form action="actionName">,对此我感到很疑惑,如果两个模块里面的actionName是一样的,它如何知道使用的是哪个呢?如果是<html:link>标签,它有个module属性来指明是哪个module,但是form标签没有module属性,困惑啊.
   发表时间:2005-03-22  
在web.xml中

<init-param>
        <param-name>config/${module}</param-name>
        <param-value>/WEB-INF/${module}/struts-config.xml</param-value>
     </init-param>


action的URL应该是:http://site/project/${module}/actionName.do
0 请登录后投票
   发表时间:2005-03-22  
我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/usermgr</param-name>
         <param-value>/WEB-INF/usermgr/struts-config.xml</param-value>
      </init-param> 

jsp中我尝试过下面几种:
<html:form action="addUser">
<html:form action="/usermgr/adduser">
<html:form action="/Projectname/usermgr/adduser">
都不成功
错误都是这个形式的:
javax.servlet.ServletException: Cannot retrieve mapping for action /usermgr/addUserInfo
0 请登录后投票
   发表时间:2005-03-22  
back 写道
我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/usermgr</param-name>
         <param-value>/WEB-INF/usermgr/struts-config.xml</param-value>
      </init-param> 

jsp中我尝试过下面几种:
<html:form action="addUser">
<html:form action="/usermgr/adduser">
<html:form action="/Projectname/usermgr/adduser">
都不成功
错误都是这个形式的:
javax.servlet.ServletException: Cannot retrieve mapping for action /usermgr/addUserInfo



WEB-INF/usermgr/struts-config.xml文件:
     <action path="/adduser"
             ....... >
     </action>

<html:form action="/Projectname/usermgr/adduser.do">
0 请登录后投票
   发表时间:2005-03-22  
当然
还有一种可能的原因是楼主直接访问某个.jsp页面
导致servlet无法加载config/usermgr
导致html taglib无法找到相应的action
0 请登录后投票
   发表时间:2005-03-22  
我的情况正式huazii说的情况
是通过一个&lt;html:link href="xxx"&gt;来访问这个页面的,难道只能通过action来访问么,这样岂不是很不方便
0 请登录后投票
   发表时间:2005-03-22  
back 写道
我的情况正式huazii说的情况
是通过一个<html:link href="xxx">来访问这个页面的,难道只能通过action来访问么,这样岂不是很不方便
 <html:link action="/module/action" >
0 请登录后投票
   发表时间:2005-03-22  
back 写道
我的情况正式huazii说的情况
是通过一个<html:link href="xxx">来访问这个页面的,难道只能通过action来访问么,这样岂不是很不方便

	
<!-- Standard Action Servlet Mapping -->
	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

.jsp文件都没有mapping给ActionServlet,还谈什么config:
      <init-param>
         <param-name>config</param-name>
         <param-value>/WEB-INF/struts-config.xml</param-value>
      </init-param>
      <init-param>
         <param-name>config/usermgr</param-name>
         <param-value>/WEB-INF/usermgr/struts-config.xml</param-value>
      </init-param> 
0 请登录后投票
   发表时间:2005-03-23  
前面各位说的方法我试了,好像不好用。
下面的方法是我照着参考资料现做出来的,我试了,好用。不知能不能符合楼主要求?

		<init-param>
			<param-name>config</param-name>
			<param-value>
				/WEB-INF/struts-config.xml,/WEB-INF/module/struts-config.xml
			</param-value>
		</init-param>

      <action
         path="/module/action"
         </action>
0 请登录后投票
   发表时间:2005-04-02  
这个问题我也遇到过.没有找到解决的方法.无论路径怎么设置都找不到action,后来就干脆不用html:form标签了.路径都不用改就可以用
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics