1.)在StrutsPrepareAndExecutFilte的init()方法中,将会读取类路径下的默认配置文件
struts.xml完成初始化操作。
2.)struts2读取到struts.xml的内容后,以javabean形式存放在内存中,以后strutus2对
用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件。
3.)配置包时,必须配置name属性,该name属性可以任意命名,但是必须唯一。不对应java的类包
包的namespace属性用于定义该包的命名空间,作为访问该包下Action的访问路径的一部分
当属性abstract=“true”时,该包为抽象包,不能具体action,只能被继承。
4.)Action名称的搜索顺序:
从后往前一次寻找,若该命名空间不存在,则到未命名空间继续寻找。
5.)视图转发类型:
1.dispatch(服务器内部转发)(默认)、
2.redirect(浏览器重定向)(不能访问WEB-INF文件下)、
<result type="redirect"> ... </result>
传输中文时:URLEncoder.encode(“中文”,“utf-8”);
3.redirectAction(重定向到某一action)、
<result type="redirectAction" > ...</result>
若action在另一个package中则:
<result type="redirectAction" >
<param name="actionName">....</param>
<param name="nameSpace">另一包的namespace</param>
</result>
4.plainTest(显示源代码文件)
<result type="plainTest" > ...</result>
若存在中文:
<result type="plainTest" >
<param name="location">....</param>
<param name="charSet">UTF-8</param>//指定文件的编码
</result>
6.)修改处理请求后缀:
<struts>
<constant name="struts.action.extension" value="..."/>
//多个处理后缀
<constant name="starts.action.extension" value="xxx,yyy"/>
</struts>
7.)struts2对用户的每一次请求都会创建一个action,所以struts2中
action是线程安全的
8.)指定多个struts配置文件:
<struts>
<include file="struts-....xml"/>
<include file="struts-....xml"/>
</struts>
9.)动态方法调用:
在action名称后添加 !+方法名;(不建议使用)
//禁止使用动态方法调用
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
10.)通配符(*)定义action
可以匹配以通配符前字符开头的所有action
<action name="one_*" method="${1}"> //代表与之匹配的方法