多选方框,选定值后提交,然后接收到一个数组,这是小菜,看书都知道。
可是,我想给这些多选方框动态显示的时候给个选中或未选中的状态值,我是看了好几个文字材料,写得都够晕的,看是那么回事,实际操作,根本就不灵。还好我够灵光,凭直觉,终于解决。
Action
中:
//
定义一组备选爱好
[
也可以从数据库中读取
]
ArrayList hobbyList =
new
ArrayList();
hobbyList.add(
"
游泳
"
);
hobbyList.add(
"
潜水
"
);
hobbyList.add(
"
登山
"
);
hobbyList.add(
"
跳伞
"
);
hobbyList.add(
"
徒步旅行
"
);
//
定义一组选定的爱好
[
也可以从数据库中读取
]
ArrayList hobbySelectList =
new
ArrayList();
hobbySelectList.add(
"
游泳
"
);
hobbySelectList.add(
"
登山
"
);
hobbySelectList.add(
"
徒步旅行
"
);
//
定义字符串数组,如果你的那个类的属性是数组类型。
String[] hobby =
new
String[hobbySelectList.size()];
//
把
ArrayList
转换为
String[]
hobbySelectList.toArray(hobby);
//
定义你的那个
ActionForm
PersonForm personForm =
new
PersonForm();
//
设置那个数组类型的属性
personForm.setHobby(hobby);
//
注意,你给
JSP
传递的东西哦!
//
一个是:备选数组
ArrayList
//
另一个是:
JSP
可承载的
ActionForm
,注意这个
ActionForm
要有被选定的数组属性值哦!
request.setAttribute(
"hobbyList"
, hobbyList);
request.setAttribute(
"personForm"
, personForm);
return
mapping.findForward(
"ready"
);
JSP
中:
<
logic:iterate
id
=
"hobbyName"
name
=
"hobbyList"
>
<
html:multibox
property
=
"hobby"
>
<
bean:write
name
=
"hobbyName"
/>
</
html:multibox
>
<
bean:write
name
=
"hobbyName"
/>
</
logic:iterate
>
解释一下
jsp
中的参数。
hobbyList
就是那个一组备选爱好数组;
hobbyName
就是随意定义的一个变量名,来接收
hobbyList
中的项;
hobby
就是
ActionForm
的那个数组属性名称;
看了这些,我自己都晕。。。这东西看来要自己领悟了!!!
我估计那个
html:radio
也是这么用,下次再研究。