Struts标签的multiBox的数据上载
多选方框,选定值后提交,然后接收到一个数组,这是小菜,看书都知道。
可是,我想给这些多选方框动态显示的时候给个选中或未选中的状态值,我是看了好几个文字材料,写得都够晕的,看是那么回事,实际操作,根本就不灵。还好我够灵光,凭直觉,终于解决。
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 也是这么用,下次再研究。