see also:http://blog.csdn.net/chenggil10/article/details/5965806#_Toc250472631
0.struts2每一个请求,都new一个实例。
1.动态方法调用代替method参数,dmi,通配符*跟method参数结合,也能达到dmi的效果
通过{1}指定返回的页面和调用的具体方法,比dmi更优!为何我们项目不用通配符?
2.tld,后缀的文件,用于描述标签文件的语言 。strusts2中不需要将tld文件放于web-inf下。
tag标签的配置文件,假如你写了个tag名叫 public class testTag extends TagSupport{
//your code
}
之后你在tld文件里配置一下
<tag>
<name>testTag </name>
<tag-class>
3.使用addFieldError方法和s:fielderror标签简单处理数据校验,为什么要用这个,因为ActionSupport拿不到request,response。。
继承ActionSupport,this.addFieldError("key","value");
返回到页面jsp源码标签,<s:fielderror fieldName="key" ,theme="simple"/>,在jsp页面中添加了一个ul,和li.其中用到了struts的样式;
s:property标签可以取struts中value stack contents的属性值;
4.<s:debug></s:debug>可以显示struts中解析文档。取struts中value stack contents的属性值和stack contexts(action contexts)
5.action中如何访问web元素?
5.1.依赖于容器,struts2的,用ActionContext的静态方法;(得到map)
ActionContext.getContext().getSession()//注意:ActionContext.getContext() 是一个ThreadLocal 的对象
ActionContext.getContext()返回的是map,而在jsp页面中可用request.getParameter()等获取,证明action(从web.xml中的filter类开始,他可以获取到http相关的东西,并存于map中)中map与request,seesion,application建立了关系;
也可以在jsp页面中用#request.r1,#session.r2获取到参数
5.2继承ActionSupport同时实现RequestAware,SessionAware,ApplicationAware,(得到map)IOC(inverse of control控制反转) 或DI(依赖注入)主要用这种
类似spring的思想,不要初始化,交给spring在配置文件中去初始化;
struct给把request、session、application交给你。
5.3ServletActionContext.getRequest()
得到request,再用它去获取其他的
5.4依赖注入实现ServletRequestAware接口;
6.<include>标签,模块分离;
struts.xml 中的标签,包括小组成员的action配置文件;
7.default action .
<derfault-action-ref>标签
默认首页,或者默认出错页面;
8.
文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。它是标准通用标记语言和[1] 可扩展标记语言1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。
原文:http://www.cnblogs.com/lulj/p/6647627.html