Struts框架_2 ActionSupport&result&通配符

关于Struts2 请求的扩展名问题
1). org. apache. struts2包下的default . properties 中配置了Struts2 应用个的一 些常量
2). struts . action. extension定义了当前Struts2应用可以接受的请求的扩展名
3). 可以在struts . xml文件中以常量配置的方式修改default. properties 所配置的常量。
 <constant name=" struts . action. extension" value="action , do, "></constant>

ActionSupport:

1). ActionSupport是默认的Action 类:若某个action节点没有配置class 属性,则ActionSupport为 待执行的Action 类。而execute 方法即为要默认执行的action 方法
<action name= "testActionSupport">
<result>/testActionSupport .jsp</resu1t>
</action>
等同于
<action name= "testActionSupport"   class="com. opensymphony . xwork2. ActionSupport"   method= "execute">
<result>/testActionSupport .jsp</result>
</action>
2).在手工完成字段验证,显示错误信息,国际化等情况下,推荐继承ActionSupport

result :
result是action节点的子节点,result代表action方法执行后,可能去的一个目的地
一个action节点可以配置多个result子节点。.
result的name属性值对应着action方法可能有的一个返回值。

result一共有2个属性,还有一个是type:表示结果的响应类型,result的type属性值在struts-default包的result-types节点的name属性中定义。
常用的有:
dispatcher(默认的): 转发。


redirect: 重定向


redirectAction: 重定向到一个Action

简便写法:通过redirect重定向:

注意:要配一个对应的包:


chain: 转发到一个Action

同样不要忘记配置对应的package及里面的action。

注意:不能通过type=dispatcher的方式转发到一个Action

通配符映射规则
若找到多个匹配,没有通配符的那个将胜出
若指定的动作不存在,Struts将会尝试把这个URI与任何一一个包含着
通配符 *的动作名及进行匹配
被通配符匹配到的URI字符串的子串可以用{1}, {2}来引用. {1}匹配第一个子串, {2)匹配第二个子串..{0}匹配整个URI
若Struts找到的带有通配符的匹配不止一 个,则按先后顺序进行匹配
可以匹配零个或多个字符,但不包括/字符.如果想把/字符包括在内,需要使用**.如果需要对某个字符进行转义,需要使用\

动态方法调用(了解):

URI: /struts- app2/Product.action: Struts调用Product类的execute()
        /struts- app2/Product!save.action: Struts调用Product类的save()方法   (.action前加!方法名)
默认情况下,Struts的动态方法调用处于禁用状态