From:http://blog.sina.com.cn/s/blog_62e585a50100h73m.html
总结: struts里Action总结
1,实现一个action的最常用的方式:从ActionSupport继承
2,DMI动态方法调用,!
3,通配符配置*{1}{2}、、、、
4,接收参数的方法(一般用属性接收,或者DomianModel来接收)
5,简单参数验证:addFieldError
a)一般不适用struts2的UI标签
6,访问Web元素
a)Map类型
i。 IoC,这种用的多,就是继承那几个接口,
ii。依赖struts2,这种就是需要使用ActionContext来获取。
request=(Map)ActionContext.getContext().get("request");
session=(Map)ActionContext.getContext().get("session");
application=(Map)ActionContext.getContext().get("application");
b)原始类型
i。IoC
ii。依赖struts2
7,包含文件配置
8,默认action处理
一 struts2里的struts标签的位置:
struts2-core-2.1.8.1.jar-->META-INF下,这里有个struts-tags.tld文件,
二 struts2标签里有个<s:property>标签,这个标签用来取valuestack里的值,或是context里的值。这样在action页面添加错误信息
时可以这样写:this.addFieldError("the name of error","the message of error");可以同一个错误名称对应多个值,例如:
this.addFieldError("nameError","sdebug check name is wrong");
this.addFieldError("nameError", "the name is too long");
然后在jsp页面内取值的时候,写成:<s:property value="errors.nameError[1]"/>
这样就取到了第二个错误信息。
三 <s:debug>标签可以用来调试程序。
四 多种按钮提交同一个action,小技巧啦
在定义form表单的时候,把action动作指定定义为空,然后在页面定义多个submit提交按钮,在每个按钮中定义所想要
执行的action,这就是多个按钮提交同一个action。
五 取得Map类型的request,session,application,真实类型的HttpServletRequest,HttpSessione,ServletContext的引用的相关知识。
其实最常用的还是实现接口:implements RequestAware,SessionAware,ApplicationAware
这里用到的是IoC的思想,当实现了这样的接口的时候,就不用初始化你的action里的request等变量了,而是都由Struts2
替你完成初始化,这就是控制反转的思想。
这里的request,session和application等都是struts2帮我们初始化好了的,是从http里拿来,然后放到你的程序变量里。
常用的就是session,其他的都不常用
六 struts配置文件包含:<include file="login.xml"/>就可以了
在这个小功能上,主要是为了开发方便,开发都是会分模块的,把一些公用的配置放到struts.xml里,然后
在用<include>包含其他模块的配置文件。
七 struts里的默认action,可以在package里配置<default-action-ref name="index" />
这样在这个package里的namespace下,默认的action就是这个了。