struts2的action的问题(新手问题见笑了)
<action name="login*" class="com.bjsxt.struts2.user.action.LoginAction{1}">
<result>/user_login_success.jsp</result>
</action>
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction1 extends ActionSupport {
private Map request;
private Map session;
private Map application;
public LoginAction1() {
request = (Map)ActionContext.getContext().get("request");
session = ActionContext.getContext().getSession();
application = ActionContext.getContext().getApplication();
}
public String execute() {
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS;
}
}
如题,这段.xml这样配置了之后,com.bjsxt.struts2.user.action.LoginAction{1}里面的函数是如何执行,
LoginAction1()是在什么时候执行的
还有例如
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String name;
public String add() {
System.out.println("name=" + name);
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
action调用了add方法,而set和get方法是什么时候执行的,struts2怎么区分哪些初始化用的例如get,set,哪些是给action调用的例如add方法。
分享到:
<action name=”login*” class=”com.bjsxt.struts2.user.action.LoginAction{1}”>
上面的* 表示任意字符,就是说struts2根据你传递的actionName 为login开头的字符串才会匹配去LoginAction中找方法,然后{1}这个占位符匹配前台的任意字符,,,所以一看你就配置错了
换成
<action name=”login*” class=”com.bjsxt.struts2.user.action.LoginAction1″ method=”login{1}”>
这样才行,,,,,
set方法 是页面跳入action的时候赋值 时候用的,