`
zy116494718
  • 浏览: 472576 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2中Action执行顺序测试

阅读更多

 

测试类Test.java:

 

public class Test extends ActionSupport{

 
private String id; 
private String username;
private int age;

private Service service;

 

public String getId() {
  System.out.println("getId");
 return id;
}
public void setId(String id) {
 System.out.println("setId="+id);
 this.id = id;
}


public String getUsername() {
  System.out.println("getUsername");
 return username;
}
public void setUsername(String username) {
 System.out.println("setUsername");
 this.username = username;
}


public int getAge() {
    System.out.println("getAge");
 return age;
}
public void setAge(int age) {
 System.out.println("setAge");
 this.age = age;
}

 

 public String execute(){

  System.out.println("aaaaaaaa");
  return SUCCESS;
 }

 

 public Service getService() {
  System.out.println("getService");
 return service;
}
public void setService(Service service) {
 System.out.println("setService");
 this.service = service;
}

 


}

JSP:


  <form action="<%=request.getContextPath()%>/qlg/test.ac" type="post" name="form1">
  <input type="hidden" name="username" value="112233"/>
  <input type="submit" name="button" value="submit"/>
 
  </form>

 

struts2配置文件:

 

     <action name="test" class="Test">
     <param name="id">1111</param>
     <result name="success">/WEB-INF/pages/qlg/LwsQGeneral/qryLwsQGeneral.jsp</result>
     </action>

 

Spring配置文件:

 

<bean name="Test" class="action.Test"  scope="prototype">
  <property name="service">
     <ref bean="Service"/> 
   </property>
 </bean>

 

 

 

启动服务器时打印:

setService

 

提交后后台打印结果为:

setService

setUsername
setId=1111
setId=1111
setUsername
aaaaaaaa

 

结论:

1)get方法都没有被打印,age的set,get方法也都没有打印,表示没有被显式或隐式的调用

set方法被调用的顺序应该为 1)Spring注入的bean  2)form表单中提交的参数  3)struts配置文件中给设置的参数

 

2)所有的set方法都在excute()之前被执行

3)如果是jfreechart等应用的话,

  

 public JFreeChart getChart()  会在excute()后被隐式调用

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics