Struts2的Convention插件导致”No result defined for action”
2012-11-27 18:09
453 查看
Convention插件自动注册Action的功能让我们从struts.xml配置的繁杂工作中解放出来,但有时候也能带来一些麻烦。出现”No
result defined for action”错误就是其中之一。
比如我们在struts.xml中定义了一个名为logout的action,…action.LogoutAction是其实现类,这时Convention就会试图帮我们注册一个名叫logout的action,并搜索对应的jsp文件注册为result;如果xml文件和convention搜索出来的action重名,其缺省的原则是覆盖xml文件中的配置,这样我们原来在xml中定义的名为logout的action的result就没有了,于是出现了”No result defined for action”的错误。
在我们不了解这个原则的时候一定很诧异:我明明定义了result,为什么报错说没有呢?其实就是被convention自动覆盖了。当我们知道了这个原则之后,就可以想办法避免了,首先xml定义action名字的时候避免和convention映射生成的action名字重复(需先了解convention的映射原则),convention是机械化的映射,而我们在xml文件中配置的aciton名字是可以根据需要进行修改的;其次如果可以的话,按convention的命名要求定义好jsp文件放到convention的result搜索路径中,这样convention就会自动注册result,不会再出现本文标题所示的错误了。
多说一句,如何查看convention注册的action呢?答案是:struts2-config-browser-plugin,安装很简单,只需要复制到WEB-INF/lib中即可,使用也很简单,访问项目路径的/config-browser/子目录即可,当然了,这个插件并不是为convention设计的,它能显示所有在struts中注册的action,无论是否由convention注册。
该插件的界面下图所示:
访问路径:http://localhost:8080/strut2_HelloWorld/config-browser/index.action
result defined for action”错误就是其中之一。
比如我们在struts.xml中定义了一个名为logout的action,…action.LogoutAction是其实现类,这时Convention就会试图帮我们注册一个名叫logout的action,并搜索对应的jsp文件注册为result;如果xml文件和convention搜索出来的action重名,其缺省的原则是覆盖xml文件中的配置,这样我们原来在xml中定义的名为logout的action的result就没有了,于是出现了”No result defined for action”的错误。
在我们不了解这个原则的时候一定很诧异:我明明定义了result,为什么报错说没有呢?其实就是被convention自动覆盖了。当我们知道了这个原则之后,就可以想办法避免了,首先xml定义action名字的时候避免和convention映射生成的action名字重复(需先了解convention的映射原则),convention是机械化的映射,而我们在xml文件中配置的aciton名字是可以根据需要进行修改的;其次如果可以的话,按convention的命名要求定义好jsp文件放到convention的result搜索路径中,这样convention就会自动注册result,不会再出现本文标题所示的错误了。
多说一句,如何查看convention注册的action呢?答案是:struts2-config-browser-plugin,安装很简单,只需要复制到WEB-INF/lib中即可,使用也很简单,访问项目路径的/config-browser/子目录即可,当然了,这个插件并不是为convention设计的,它能显示所有在struts中注册的action,无论是否由convention注册。
该插件的界面下图所示:
访问路径:http://localhost:8080/strut2_HelloWorld/config-browser/index.action
相关文章推荐
- [SSH]Struts2 -- No result defined for action and result input
- [Struts2] No result defined for action ... and result input & Invalid field value for field ...
- struts2 在拦截器里报错:No result defined for action com.gkwl.action.UserAction and result input
- Struts2关于No result defined for action action.UserAction and result register_success
- struts2 拦截器报错:No result defined for action xxx.action and result input
- struts2 No result defined for action.....and result input
- No result defined for action action and result input 解决办法——struts2 文件上传
- 当你在用struts2开发时,如果,从页面跳入action时,页面报No result defined for action and result
- struts2的一个异常:No result defined for action XXX and result input
- struts2 多文件上传 No result defined for action com.cpms.action.organ.UploadFile and result inpu
- Struts2报错:No result defined for action xxx and result input
- struts2第二次提交页面提示no result defined for action
- 使用Struts2显示No result defined for action XXXXAction and result input
- Struts2 表的提交报错 :No result defined for action net.zdsoft.eis.base.data.action.BasicSemesterAdminActio
- Struts2 Problem Report: No result defined for action ... and result exception
- struts2的那些事儿--No result defined for action.....and result input
- Struts2:(No result defined for action ** and result input) is not available.
- Struts2 项目报错 No result defined for action com.xxx.xxAction and result input
- struts2环境配置是出现No result defined for action *** and result input”的错误信息
- [Struts2] No result defined for action ... and result input & Invalid field value for field ...