使用通配符,将配置量降到最小。
在配置Action这样写:
{1}与*就是通配符。其中{1}指的是“*”号所代表的字符串,method="{1}"代表的就是使用StudentAction中方法名为{1}(说白了就是student后面的字符串)的方法来获取result。
如:
这里的studentadd与studentdelete的student后面的字符串就是所谓的“*”,{1}就分别被赋值为add与delete,即:method="add"和method="delete"。
而StudentAction中只需要部署好这两个方法即可:
这种方式避免了多次建立action来指定跳转的jsp或html页面(也适用于多result的情况)
注意:一定要遵守“约定优于配置”的原则
(例如,项目经理会约定你们,各种方法的命名规则,必须怎么怎么写)
注意:struts首先匹配最精确的,如果有比通配符更精确的,首先匹配精确的那个。
结语:通配符用好了,可以将配置优化到最简化
一个最简化配置的例子:
struts.xml:
TeatherAction:
Teather_add_success.jsp:
Teather_delete_success.jsp:
调用:
<a href="<%=basePath %>javaee/Teather_add">添加老师</a><br/>
在配置Action这样写:
<action name="student*" class="cn.edu.hpu.action.StudentAction" method="{1}"> <result name="success">/student{1}_success.jsp</result> </action>
{1}与*就是通配符。其中{1}指的是“*”号所代表的字符串,method="{1}"代表的就是使用StudentAction中方法名为{1}(说白了就是student后面的字符串)的方法来获取result。
如:
<a href="<%=basePath %>javaee/studentadd">添加学生</a><br/> <a href="<%=basePath %>javaee/studentdelete">删除学生</a><br/>
这里的studentadd与studentdelete的student后面的字符串就是所谓的“*”,{1}就分别被赋值为add与delete,即:method="add"和method="delete"。
而StudentAction中只需要部署好这两个方法即可:
package cn.edu.hpu.action; public class StudentAction { public String add(){ return "success"; } public String delete(){ return "success"; } }
这种方式避免了多次建立action来指定跳转的jsp或html页面(也适用于多result的情况)
注意:一定要遵守“约定优于配置”的原则
(例如,项目经理会约定你们,各种方法的命名规则,必须怎么怎么写)
注意:struts首先匹配最精确的,如果有比通配符更精确的,首先匹配精确的那个。
结语:通配符用好了,可以将配置优化到最简化
一个最简化配置的例子:
struts.xml:
<package name="default" namespace="/javaee" extends="struts-default"> <action name="*_*" class="cn.edu.hpu.action.{1}Action" method="{2}"> <result name="success">/{1}_{2}_success.jsp</result> </action> </package>
TeatherAction:
public class TeatherAction { public String add(){ return "success"; } public String delete(){ return "success"; } }
Teather_add_success.jsp:
<html> <head> <title>My JSP 'Teather_add_success.jsp' starting page</title> </head> <body> Teather add success!!!!<br> </body> </html>
Teather_delete_success.jsp:
<html> <head> <title>My JSP 'Teather_add_success.jsp' starting page</title> </head> <body> Teather delete success!!!!<br> </body> </html>
调用:
<a href="<%=basePath %>javaee/Teather_add">添加老师</a><br/>
<a href="<%=basePath %>javaee/Teather_delete">删除老师</a><br/>
结果读者自己思考一下吧?(动手实践)
转载请注明出处:http://blog.csdn.net/acmman/article/details/44158439