当前位置: 代码迷 >> Java Web开发 >> struts2中set get施行顺序
  详细解决方案

struts2中set get施行顺序

热度:4923   发布时间:2013-02-25 21:07:46.0
struts2中set get执行顺序
package com.cy.action;

import java.util.Map;

import com.cy.domain.User;
import com.cy.operator.UserOperator;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;

public class UserAction implements Action{

 private User user;

@Override
public String execute() throws Exception {
System.out.println("execute");
return "success";
}
 

public String getAccount(){
System.out.println("getaccount");
UserOperator uo = new UserOperator();
boolean flag = uo.getAccount(user.getUname(), user.getUpass());
if(flag == true){
Integer uid = uo.getUidByName(user.getUname());
user.setUid(uid);
Map<String, Object> session = ActionContext.getContext().getSession();
session.put("user", user);


return "list";
}
else{
return "login";
}

}

public User getUser() {
System.out.println("get");
return user;
}

public void setUser(User user) {
System.out.println("set");
this.user = user;
}
 
}




如上,我从login.jsp转到这个action时。发现,控制台输出了get set get getaccount为什么先会执行get呢,按到底不是应该执行set吗?而且后一个get为什么执行,我在进入getaccount之前没用到get额,求大神们说说自己的看法。

<form action ="getAccount"  >
<table border="3">
<tr>
<td>账号</td>
<td><input type = "text" , name = "user.uname" ></input></td>
</tr>
<tr>
<td>密码</td>
<td><input type = "password" , name = "user.upass" ></input></td>
</tr>
<tr>
<td colspan="2"><input type="reset" value = "重置"></input>
<input type ="submit" value = "确认"></input></td>
</table>
</form>

这是login里的代码。
谢谢大家。

------最佳解决方案--------------------------------------------------------
set,getaccount,get..
------其他解决方案--------------------------------------------------------
引用:
set,getaccount,get..


我也是这么想的,调试的时候不是那样才觉得奇怪
  相关解决方案