注意一点
<s:>标签默认只输出fielderror域的错误内容
如果要输出acion级的错误信息,
必须增加<S:acionerror />标签进行输出
另外一点
将<S:form>中的theme元素设置成simple后原来用属性文件描述的一些类型转换的错误不能再输出到页面中了
关于这个问题该怎么解决大家如果看到了给点建议哦谢谢了
最后还要提到的一点
在struts2中可以通过struts.xml文件中<action>标签的<method>属性来动态的指定执行的处理方法,这当然是用了java的反射机制,实现暂不讨论,要讲的是这样指定后action中一些方法的执行顺序要注意了
1. 我们知道如果没有其他任何附加的方法,action中方法的执行顺序是
validate()-->execute() ;其中validate方法不管是否发生类型转换错误等等清况总是会执行,且在execute方法之前
2.如果有其他的方法比如有一个test(),执行同execute()一样的功能,且有对应的验证方法(同validate方法功能相同)validateTest(),且被显示的调用了(很有可能是存在另外一个action,它的名字不同,但是实现的类就是我们所讲的这个类,这样调用这个action时它指定了method=“test”,则test被显式的调用了)这个时候的执行情况应该是这样:
validateTest() --> validate() -->test()
这样问题出来了,validate每次都必须被执行,而且还有一个问题是execute()方法可能不会被执行了,除非显式的知名要调用,怎么样避免这种问题呢,有一个两全其美的办法:
将validate方法改名为vaidateExecute, 这样当需要调用execute方法时显式的指出来,即在<actioon>标签中指出method=“execute”,这样同时也会执行validateExecute()方法