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