解决 No result defined for action ……及Action层出现的struts的bug
今天遇到一个特别奇怪的问题,明明在Action中配好了result,在Action中也写好返回值,二者一样,但页面总报找不到Aciton和result的错误,上网查了查,
有的说类名与struts本身冲突的,有说提交的表单与model的属性没对应上的,我全检查一了遍,没问题,潜心研究,原来是strtusr的一个bug.
<default-action-ref name="main_show"></default-action-ref>
<action name="main_show" class="com.ivms.maintenancemanage.action.MaintenanceAction" method="listShow">
<result>/maintenancemanage/main_show.jsp</result>
</action>
<action name="maintenanceAction" class="com.ivms.maintenancemanage.action.MaintenanceAction">
<result name="add_success" >/maintenancemanage/add_success.jsp</result>
</action>
如上,代码的本意是调用main_show的Action时,去Action中调用listShow这个方法,然后,对于此Action中的其他方法,采用动态调用就可以了。
但是,我在调用add方法之后,struts却去上面那个Action标签中寻找了Result,当然就没有找到了。我把result放在上面时,发现就没问题了。
解决方法就很多了,我就采用简单的方法:
<default-action-ref name="maintenanceAction"></default-action-ref>
<action name="maintenanceAction" class="com.ivms.maintenancemanage.action.MaintenanceAction">
<!-- 执行Execute方法,显示首页 -->
<result>/maintenancemanage/main_show.jsp</result>
<result name="add_success" >/maintenancemanage/add_success.jsp</result>
</action>
就可以了。。。。。
顺便说一个前两天发现的struts中的bug:
当在action层中写普通方法时,一定要记住,不要写成getXXX,否则,struts会认为这是get,set方法中的一部分。从而在有表单提交时,也会走此方法,这样,就很有可能产生未知的错误。即:没打算执行的方法被莫名其妙的执行了。
posted on 2012-04-25 15:55 java课程设计例子 阅读(237) 评论(0) 编辑 收藏 举报