七、ActionSupport
1)在struts.xml文件中,action标签如果未使用class属性,则默认class值为ActionSupport。
2)实现Action接口。可以调用execute方法及五个常量。
3)实现Validateable接口。手工实现验证时使用。
4)实现ValidationAware接口。用来接收和显示错误的消息。
5)实现TextProvider和LocalProvider接口。实现国际化使用。
八、result
1)result是action的子节点。
2)是执行action方法后,返回的地方。
3)一个action可以配置多个result子节点。
4)result的name属性对应action方法中的某个返回值。
5)result的type属性表示相应结果类型。
6)type属性常用的值有:dispatcher(默认,转发),redirect(重定向);redirectAction(重定向到一个Action),chain(转发到一个Action)
注:通过redirect也可以实现重定向到一个redirectAction的功能。
九、通配符映射
1)用*来作为通配符
2)如果有两个或多个通配符如:*_* ,则{1} 表示的第一个通配符,{2}表示第二个通配符,以此类推。
3)若在一个Struts中找到不止一个通配符,则按先后顺序匹配。
测试代码:
首页:
<ahref="test_save.do">Test save</a>
<br>
<ahref="test_update.do">Test update</a>
<br>
<ahref="test_delete.do">Test delete</a>
<br>
<ahref="test_insert.do">Test insert</a>
struts.xml
<actionname="test_*"class="com.yaorange.struts.wildcards.TestAction"
method="{1}">
<resultname="{1}">/success.jsp</result>
</action>
Action类:
public String save(){
System.out.println("save");
return "save";
}
public String update(){
System.out.println("update");
return "update";
}
public String delete(){
System.out.println("delete");
return "delete";
}
public String insert(){
System.out.println("insert");
return "insert";
}
九、动态方法调用(了解)
1)通过url动态调用Action的方法.
2)默认情况下,struts的动态方法调用处于禁用状态, 若要使用动态方法,需要手动打开。
<constantname="struts.enable.DynamicMethodInvocation" value="true"></constant>
测试代码:
首页:
<ahref="Dynamic.do">DynamitTest</a>
struts.xml:
<actionname="Dynamic"class="com.yaorange.struts.dynamicMethodInvocation.DynamicMethodInvocationAction"
method="test1">
<result>/success.jsp</result>
</action>
Action类:
public String test1(){
System.out.println("Test1......");
return "success";
}
public String test2(){
System.out.println("Test2......");
return "success";
}
测试结果
浏览器地址栏输入:http://localhost:8080/1028Struts2_3/Dynamic.do 打印Test1……
动态调用test2方法:http://localhost:8080/1028Struts2_3/Dynamic!test2.do 打印Test2……