Struts2中重要的就是Action类了,下面来介绍一下Action。
1.ActionSupport类
我们在上篇文章中使用的Action类就是集成ActionSupport,并自定义变量,要实现变量的set 和get方法,覆盖execute方法。并将execute方法的返回值 在struts.xml文件中配置,如果有不熟的可以看看上一篇的内容。这里注意的的是:ActionSupport中实现了其他方法比如数据校验等,继承ActionSupport可以直接使用里面的方法。
2.Action接口
我们自定义的Action还可以直接使用Action接口,其实上面说的ActionSupport也是实现了Action接口。Action接口中只定义了一个execute方法和几个返回结果如INPUT,SUCCESS,ERROR,LOGIN,NONE等.
3.不需要继承和实现任何Action
struts2的Action并不一定要实现Action接口,任何的java 类也可以被用作Action,只要这个类具有execute这个方法。并将其配置到struts.xml文件中,一般如果Struts2发现没有实现Action接口,会通过反射技术来调用execute方法。不是Action接口是不与Action相耦合,代码也不依赖Struts2中的类库,既然我们学习Struts2呐当然是继承和实现Action接口,并利用里面的其他方法为我们的编程带来方便。
4.Action的可执行方法
Action除了有execute方法当然还以有其他方法,只要这些方法和execute方法的格式一样(没有参数,返回值为String),并将他们配置到struts.xml文件中,
这里我们介绍Action类中其他方法的配置:
1.在struts.xml文件中用Action中的method方法,不过这样如果方法很多就需要写多个Action标签,用method属性区分,并每个Action的name属性的值还有要求不同;
<action name="action类的实例名" class="action类的位置" method="action的方法名"><result name="方法返回结果值">相应的处理页面</result></action>
2.利用感叹号方式,需要在struts.xml文件中设置一个属性<contant name="struts.enable.DyamicMethodInvication"value="true">这样可以在一个<action>标签中使用多个<result>设置不同返回结果的处理页面。
3.通配符我用一个例子<action name="*Action" method="{1}" ckas