Wednesday, October 18, 2006

Strut 多模块的实现

Strut 多模块的功能还是很有用的,USER GUIDE上的介绍稍微简单了点。
在N次失败后,终于成功了,顺便把经验贴出来
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>

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

struts-config-man.xml里面配置了一个 path="/try" 的action
然后在网页的根目录上建了一个目录man,并在里面放上index.jsp
index.jsp有一个FORM,内容如下:
代码

<html:form action="/try">

......

</html:form>


这时若直接访问index.jsp会报错说找不到action什么的

但是如果不用html:form标签而是使用普通HTML是可以的:
代码

<form action="try.do">

......

</form>


原因是访问JSP时标签在LOOKUP对应的ACTION时module path还是根模块(上例中struts-config.xml所在的module)所以找不到ACTION。
解决办法是在man 所在的module里增加个action来跳转

如在struts-config-man.xml里加一个action:

代码
<action forward="/index.jsp" path="/index" />

访问/man/index.do后STRUTS就会载入man的module path ,于是就可以正常访问index.jsp了

No comments: