要點:
在ActionForm定義值對象company,定義Setter/Getter方法;
在JSP裏對input元素的名稱稍加變化,加company前綴,company.cp_name。
Struts能把company.cp_name的值自動地Populate到對象company,填充cp_name屬性。
效果:
簡化ActionForm對屬性的定義,實際上系統只需要保留ValueObject和PersistObject兩類對象。
本質上是借用值對象ValueObject作爲ActionForm的傳值對象。
變化:
當頁面元素來自不同類值對象時,例如Company,Bulletin等,分別寫不同的前綴,company.cp_name,bulletin.bl_title。
對於不屬於任何值對象的元素,照基本寫法寫。
===
示例代碼
** 傳統寫法:
//CompanyForm.java
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.ticket.entity.company.*;
public class CompanyForm
extends ActionForm {
private String cp_name; //名稱
private String cp_phone; //電話
private String cp_fax; //傳真
public String getCp_name() {
return cp_name;
}
public void setCp_name(String cp_name) {
this.cp_name = cp_name;
}
public String getCp_phone() {
return cp_phone;
}
public void setCp_phone(String cp_phone) {
this.cp_phone = cp_phone;
}
public String getCp_fax() {
return cp_fax;
}
public void setCp_fax(String cp_fax) {
this.cp_fax = cp_fax;
}
//其他代碼
}
** 優化寫法:
//CompanyForm.java
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.ticket.entity.company.*;
public class CompanyForm
extends ActionForm {
public Company company = new Company();
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
}
//其他代碼
}
//company_add.jsp
要點:
在ActionForm定義值對象company,定義Setter/Getter方法;
在JSP裏對input元素的名稱稍加變化,加company前綴,company.cp_name。
Struts能把company.cp_name的值自動地Populate到對象company,填充cp_name屬性。
效果:
簡化ActionForm對屬性的定義,實際上系統只需要保留ValueObject和PersistObject兩類對象。
本質上是借用值對象ValueObject作爲ActionForm的傳值對象。
變化:
當頁面元素來自不同類值對象時,例如Company,Bulletin等,分別寫不同的前綴,company.cp_name,bulletin.bl_title。
對於不屬於任何值對象的元素,照基本寫法寫。
===
示例代碼
** 傳統寫法:
//CompanyForm.java
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.ticket.entity.company.*;
public class CompanyForm
extends ActionForm {
private String cp_name; //名稱
private String cp_phone; //電話
private String cp_fax; //傳真
public String getCp_name() {
return cp_name;
}
public void setCp_name(String cp_name) {
this.cp_name = cp_name;
}
public String getCp_phone() {
return cp_phone;
}
public void setCp_phone(String cp_phone) {
this.cp_phone = cp_phone;
}
public String getCp_fax() {
return cp_fax;
}
public void setCp_fax(String cp_fax) {
this.cp_fax = cp_fax;
}
//其他代碼
}
** 優化寫法:
//CompanyForm.java
import javax.servlet.http.*;
import org.apache.struts.action.*;
import com.ticket.entity.company.*;
public class CompanyForm
extends ActionForm {
public Company company = new Company();
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
}
//其他代碼
}
//company_add.jsp
<tr>
<td height="23" align="right" class="bg2">單位名稱: </td>
<td width="85%">
<input name="company.cp_name" type="text" maxlength="25" size="50" height="16">
<font color="#FF0000">*</font>
</td>
</tr>
<tr>
<td height="23" align="right" class="bg2">電 話:</td>
<td width="85%">
<input name="company.cp_phone" type="text" maxlength="20" size="30" height="16">
</td>
</tr>
<tr>
<td height="23" align="right" class="bg2">傳 真:</td>
<td width="85%">
<input name="company.cp_fax" type="text" maxlength="20" size="30" height="16">
</td>
</tr>
</form>