解法1说是输入格式与实体的不匹配,我一开始以为不是这个问题后来发现就是。<input>少加了type="text"而输入当中又有数字,所有应该编译器默转为数字了
后来解法2:点击打开链接
昨晚上花了将近45分钟才解决…怪我没找到好文章说明这个问题…那时候太急了都忘记时间了..
(首先我用的myeclipse9.0,用自带的导入了struts2.1版本的类库)
(网上搜索大量说是没在struts.xml中配置input,路径,等等问题,发现这些都不是属于我的)
而我的原因很简单:
struts2.1.8 必须在struts.xml中配置namespace属性
如果你在2.0中一切OK,但是在2.1中确出现了No result defined for action的异常,就是在因为在2.1中有一个插件struts2-convention-plugin-2.1.8.jar,这个插件是2.1版本中新添加的默认核心包,这个插件是实现Struts2的零配置,必须引入namespace命名空间,否则就会出现刚才的No result defined for action的异常
这里需要补充的事,其中也有一种可能:
假如你的浏览器是中文优先(浏览器的“语言”选项中可以设置的),
而其中有一个表单要求输入的是Date类型,那应该输入2010-10-2,这种横杠方式。
如果是英语优先那就必须填入10/2/2010,不然可能也出现这种情况。)
解决办法:(如下图)
在struts.xml中如下配置,添加一个namespace属性,名称任意,建议取得有意义。
而JSP相对应的请求页面也需要跟着设置:
第一种方法<s:form name=" register " action="/user/ register " >
可是这种方式会报一个警告,虽然不影响使用.但是更加好的写法是:(如下图)
<s:form action="register" namespace="/user">struts2标签中是支持这个属性