解决 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编辑  收藏  举报