最近使用S2SH时发现老是出现No result defined for action and result这个错误,但我就不明白为何登录的action能正常执行,其他action就会出现这个错误,在网上找了一大堆解决办法依然无济于事,可烦人了。
后来才发现使用struts2在<package name="action" namespace="/" extends="struts-default">中一定要使用namespace,由于我之前有用到低版本的struts2没出现这些错误,所以当我现尝新使用新版本时也没加上namespace,所以就报出了No result defined for action and result这个错误。
错误的原因我在网上找了半天,终于理解了,原来是:
在2.1中有一个插件struts2-convention-plugin-2.1.8.jar,这个插件是2.1版本中新添加的默认核心包,这个插件是实现Struts2的零配置,这样问题就来了,如果引入就必须引入namespace命名空间,否则就会出现刚才的No result defined for action的异常,所以为了保险起见,不管什么版本都加上namespace就对了。