您的位置:首页 > 编程语言 > Java开发

解决 No result defined for action ……及Action层出现的struts的bug

2012-04-25 15:55 405 查看
今天遇到一个特别奇怪的问题,明明在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方法中的一部分。从而在有表单提交时,也会走此方法,这样,就很有可能产生未知的错误。即:没打算执行的方法被莫名其妙的执行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐