Struts注意的几点
1.继承com.opensymphony.xwork2.ActionSupport会使写Action更方便,需要引入commons-logging-1.0.4.jar继承后会出现常量:
SUCCESS=“success”
NONE
=“none”
ERROR
=“error”
INPUT
=“input”
LOGIN
=“login”
2.对于继承自定义抽象父类的Action需注意:
例如:我们发现几个Action都是要返回一个叫做code的状态码到前台,那么为了提高代码复用,我们可以把code抽取到父类,并把Struts需要的setter、getter方法写好,子类继承它即都拥有了code属性。但是此时即需注意:配置文件Struts.xml中的:
<result name="success" type="json"><param name="code">code</param> </result>在Struts中默认只会返回子类的code属性,并且测试发现也不能被Struts自动封装为json,返回到前台的不是json数据,而是code的值。那么我们如何让返回中含有父类的code属性呢,我们可以使用:
<result name="success" type="json">
<param name="ignoreHierarchy">false</param>
<param name="code">code</param>
</result>
表示父类子类属性一起返回,这时前台才会出现json数据。
3.对于action里面的自定义方法命名,不能有形如setA***(){},获取getB**(){}。因为前台传入参数到action时,Struts会调用相同参数名的action内中的属性的set方法进行赋值;而反馈到前台时,会调用get方法获取到前台。如果你的方法中有如getMyUser(){}的方法存在,那么在前台,你会看到有一个myUser的东西被发送到了前台,即使你的action中没有myUser属性。
4.对于属性的get方法或者set方法,都不能设置为static,否则无法赋值或取值。