ActionForm Bean在Struts里用來保存網(wǎng)頁request傳遞之間的數(shù)據(jù)。比如我們現(xiàn)在寫的NewForm Bean用來收集表格內(nèi)的信息,
類似于servlet的request.getParamenter()的作用;當(dāng)用戶提交以后,數(shù)據(jù)將保存在bean內(nèi),然后再做處理。
類似于servlet的request.getParamenter()的作用;當(dāng)用戶提交以后,數(shù)據(jù)將保存在bean內(nèi),然后再做處理。
- 點(diǎn)擊Source Packages > com.bbs.struts,右鍵New > Java Package... 創(chuàng)建一個(gè)com.bbs.struts.form的package用于存放
所有form;
- 右鍵com.bbs.struts.form, New > Struts ActionForm Bean...如果New菜單里沒有的話,選擇other...,categories里選擇
Struts,F(xiàn)ile types一欄里選擇Struts ActionForm Bean...;
- 為這個(gè)ActionForm取名叫NewForm,然后按Finish完成。
IDE將創(chuàng)建一個(gè)NewForm bean,并在右邊的Source Editor里面打開它。默認(rèn)的話,IDE將創(chuàng)造2個(gè)一個(gè)String型的name和int型的number,2個(gè)屬性;并且定義了它們的accessor方法。另外IDE將在struts-config.xml里面,添加對(duì)這個(gè)bean的聲明;
<form-beans>
<form-bean name="NewForm" type="com.bbs.struts.form.NewForm"/>
</form-beans>
- 在Source Editor里面,將原來的name,number字段刪除,并刪除與之相關(guān)的accessor方法。然后為NewForm添加以下字段,這些字段與之前的post.jsp所用到的字段一一對(duì)應(yīng)。
private String name;利用insert code...功能,添加相應(yīng)的accessor方法。
private String subject;
private String content;
private String url;
private String email;
private int iconId;
private String password;
private String font;
private List icons;
private String result;
- 考慮到因?yàn)閳D標(biāo)的列其實(shí)在生成這個(gè)網(wǎng)頁的時(shí)候就自動(dòng)添加的,所以在這個(gè)ActionForm bean的Constructor的方法里面,就要處理icon了,還有就是對(duì)字色,網(wǎng)絡(luò)鏈接做一下預(yù)處理:
public NewForm() {
super();
// TODO Auto-generated constructor stub
setUrl("http://");
setFont("#800000");
String sql = "select id,name,src from icon order by id";
QueryRunner qr = DbHelper.getQueryRunner();
List list = null;
try {
list = (List) qr.query(sql, new BeanListHandler(Icon.class));
// TODO Auto-generated constructor stub
} catch (SQLException ex) {
Logger.getLogger(NewForm.class.getName()).log(Level.SEVERE, null, ex);
}
setIcons(list);
}
- 同樣在validate方法里,添加對(duì)subject驗(yàn)證,如果subject為空的話,改名“無題”。
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if (getSubject() == null || getSubject().length() < 1) {
setSubject("無題");
}
return errors;
}
- 第一個(gè)ActionForm Bean就完成了。