Struts2的Action使用

来源:互联网 发布:ug8.0编程手机教程 编辑:程序博客网 时间:2024/06/04 19:03

大纲:

1.Struts的两种页面传值方式:属性驱动方式、模型驱动方式

  属性驱动方式:必须在相应的Action类中实现set和get方法,无论普通的属性还是JavaBean。

  属性在界面中:如果是普通的属性,名称一致就好。如果是JavaBean的话,则需要写上属性名(即JavaBean名).成员变量名代表这个控件所指的属性

  模型驱动方式:需要Action实现ModelDriven接口,并且JavaBean必须被实例化。

  属性在界面中:直接放入JavaBean的成员变量即可

  以上两种可以混合使用

2.Struts的Action定义的三种方式:实现xwork包下的Action接口,什么都不继承和实现(但是有严格的命名规范,而且方法名必须为execute),继承ActionSuppor(最常用)

  注意:一般把jsp等视图页面放在工程WEB-INF里面,外界不能直接访问,保障了视图的安全,如果需要访问,则需要在struts.xml配置中的result结果result中加入/WEB-INFO/视图名;再多方法配置的时候,记住在表单form的action路径中不要在加入/了,否则会在往上一级找,访问不到相应页面了。


3.Struts多方法的配置:

                  直接在配置的Action中写入method方法,将方法名写入,在页面中调用的时候还是按照原先namespace+name调用;

                 直接在配置的Action中按照以前的写法,并不需要写入method配置。而在页面中调用则namespace+name+!+方法名的形

                 直接在配置的Action中使用通配符的形式,即在配置的action name中写入a_*的形式,在之后配置的method中写入 {1}的形式,则代表在页面中使用的时候namespace+name(a_方法名)

                以上的方法配置,第一种的result较为灵活,而第二种和第三种的result针对success的时候,是统一的返回值,相对来说不灵活些,result 也会产生很多。

4.Struts的验证:Action类需要继承ActionSupport 并且重写validate方法。直接在validate方法中写入针对属性或者模型的值得判断,并且将判断结果加入到this.addFieldError(字符型写入模型或者属性名必须与前台以及后台的名称一致,错误内容);

                此validate方法缺陷是会针对当前类的所有方法均执行此验证,如果为公共的都需要验证的内容可以放入,但是对单个方法的验证,则需要不写此方法,而是validate+方法名(首字母大写)的形式,是针对单个方法的验证,只要需要执行此方法,则必须先验证,才能执行。

前台需要显示,则需要用到struts标签中的s:filederror标签,显示单个属性的错误则加入其属性filedName,放入值即可。

5.客户端验证