昨天闲暇无事,决定写点东西,用struts+spring+hibernate.
因为考虑到模块的清晰,所以将系统分模块
<init-param></init-param>
<param-name></param-name> config
<param-value></param-value> /WEB-INF/struts-config.xml
<init-param></init-param>
<param-name></param-name> config/login
<param-value></param-value> /WEB-INF/configs/login/config-login.xml
<init-param></init-param>
<param-name></param-name> config/right
<param-value></param-value> /WEB-INF/configs/right/function/config-function.xml
可是分模块后在addFunction.jsp中使用html:form标签,总是报错,着不到action,我晕,无奈了.
最后决定好好看看到底是什么原因,于是使用xjad反编译struts的jar包,从formTag标签开始查找
最后终于找到原因:
moduleConfig = TagUtils.getInstance().getModuleConfig(pageContext);(一步步跟综TagUtil-->>ModelUtils)
可以看到form标签在取得config的时候,并没有到相应的模块中取得,而只是在config那个级别的目录下取得
所以改了form标签的代码,添加了prefix属性,^_^,(struts在品装模块的时候是这样的,比如right模块org.apache.struts.action.MODULE/right)
moduleConfig = TagUtils.getInstance().getModuleConfig(getPrefix(),
pageContext);
终于搞定了,不知道是我的理解有问题,还是struts真有这个bug,无奈了,反正改了好使了,哈哈哈