Struts2中Action执行顺序测试

7 篇文章 0 订阅

 

测试类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()后被隐式调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值