这里主要是针对上一篇文章中的action中的通配符来进行补充,在action中指定名字可以来匹配多个通配符
<action name = "login_*_*" class = "com.kevin.test.{1}" method = "{2}">
<result name = "success">success.jsp</result>
</action>
星号表示一个匹配,第一个星号来匹配第一个{1} 这个参数 第二个星号来匹配第二个参数 所以我们可以在login这个类中新添加一个add的方法 这里的星号代表长度不为0的字符串集 实际上这里的下划线也可以修改为aa bb cc等 实际上就是一个正则表达式的应用
package com.kevin.test;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class login extends ActionSupport implements ModelDriven<User>{
private User user = new User();
@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println(user.getUsername());
return SUCCESS;
}
public String add() {
return SUCCESS;
}
}
当我们访问http://localhost:8080/strut2Demo/login_login_add这个域名的时候 就表示由com.kevin.test的login类中的add方法来执行,当返回success的时候 就跳转到success.jsp这个界面 这就是通配符的作用
这里附上一张动态方法的调用 也就是上文提到的method方法和通配符方法 这里不介绍感叹号的方法 因为不常用
比较好的博客写的
http://www.cnblogs.com/ningvsban/p/3734574.html