在
actionform
中定义一个对象,利用对象来传参数
通常是在
form
中定义很多属性字段,然后从页面上读取传来的参数,把参数值赋给
javabean
,如下面:为简单起见,只定义了
4
个属性
public class Book extends java.io.Serializable{
private int id;//
在使用
hibernate
时需要定义为
Integer
型
private String name;
private String publishDate;
private String author;
......//
省略
getter
和
setter
方法
}
public class BookForm extends org.apache.struts.action.ActionForm{
private
String
name
;
private
String
publishDate
;
private
String
author
;
......//
省略
getter
和
setter
方法
,
及
reset
和
validate
方法
}
页面:省略
form
以外的代码
,
在只保留属性代码
<html:text property="
name
" size="20"/>
<html:text property="
publishDate
" size="20"/>
<html:text property="
author
" size="20"/>
在
BookAction
中的
insert
方法:
public class BookAction extends org.apache.struts.actions.DispatchAction{
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Book book=new Book();
if(form!=null){
BookForm bookForm=(BookForm )form;
book.setName(
bookForm.getName()
);
book.setPublishDate(
bookForm.getPublishDate()
);
book.setAuthor(
bookForm.getAuthor()
);
}
......//
装载完了
javabean,
然后就是添加操作
,
省略
}
}
上面的是通常写法
,
我觉得比较啰嗦
,
就是因为是传参数
,
下面是传对象
,
我觉得比较不错
:
就是在
form
中定义一个
bean
对象属性
,
而不是字段
,
如下
:
public class BookForm extends org.apache.struts.action.ActionForm{
private Book book=new Book();
......//
省略
getter
和
setter
方法
,
及
reset
和
validate
方法
}
页面
:
省略
form
以外的代码
,
在只保留属性代码
<html:text property="
book.name
" size="20"/>
<html:text property="
book.publishDate
" size="20"/>
<html:text property="
book.author
" size="20"/>
在
BookAction
中的
insert
方法:
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Book book=new Book();
if(form!=null){
BookForm bookForm=(BookForm )form;
book.setName(
bookForm.getBook().getName()
);
book.setPublishDate(
bookForm.getBook().getPublishDate()
);
book.setAuthor(
bookForm.getBook().getAuthor()
);
}
......//
装载完了
javabean,
然后就是添加操作
,
省略
}
这样一来从页面传过来的是一个封装了参数的对象,同时使得
form
代码减少,并且代码可读性增强