Struts Checkbox radio怎么进行动态的选择
2005-12-14 10:19
447 查看
使用Struts的朋友,可能经常发现使用页面的一些标签的时候觉得不够得心应手。比如我们要设计一个用户修改得信息的界面,需要调出一些用户的信息。不幸的是,当页面中含有Checkbox或是radio的时候有没有想过怎么处理?以前我也为这个苦恼,不少论坛上的人也发帖子问这个问题。最近看到了两篇文章,可以解决这个问题。来自IBM developer:
http://www-128.ibm.com/developerworks/java/library/j-sr3.html
http://www-128.ibm.com/developerworks/java/library/j-sr4.html
先调简单的说起吧,我们来实现动态的checkbox:
1、Form的设计:我们这个例子有个String[] mountains,这个变量数组中包含很多的山的名字;还有个数组String[] selectedMountains就是默认选中的一些山,像下面这样很简单。
<html:multibox property="selectedMountains">
<bean:write name="mountain"/>
</html:multibox>
这个标签的作用就是selecteDMountains的值和迭代的mountain值一致的时候就会选中。
接下来说Radio,其实Form和Action部分都差不多,只是JSP页面有点不一样,Radio里面甚至牵涉到了JavaScript。
1.From的设计:
3.重点部分JSP:
"<bean:define/>"定义了一个PageContext作用域的属性selectedRadio,下面的JavaScript的作用就是根据这个属性找到应该选中的Radio。其他的地方和上面那个很相似的。如果还是不太理解先运行,看看生成的HTML代码。
http://www-128.ibm.com/developerworks/java/library/j-sr3.html
http://www-128.ibm.com/developerworks/java/library/j-sr4.html
先调简单的说起吧,我们来实现动态的checkbox:
1、Form的设计:我们这个例子有个String[] mountains,这个变量数组中包含很多的山的名字;还有个数组String[] selectedMountains就是默认选中的一些山,像下面这样很简单。
public class MultiboxForm extends ActionForm { private String[] selectedMountains = {"Everest","K2","Lhotse","Cho Oyu"}; private String[] mountains ={"Everest","K2","Kangchenjunga","Lhotse","Makalu","Kangchenjunga South","Lhotse Middle","Kangchenjunga West","Lhotse Shar","Cho Oyu"}; public String[] getMountains() { return mountains; } public void setMountains(String[] mountains) { this.mountains = mountains; } public String[] getSelectedMountains() { return selectedMountains; } public void setSelectedMountains(String[] selectedMountains) { this.selectedMountains = selectedMountains; }2、Action的设计:这个就更简单了,一句话,由控制器切换到视图。
return mapping.findForward("success");3、JSP的设计:
<html:form action="/multibox" name="multiboxForm" type="qiya.deng.struts.form.MultiboxForm"> <logic:iterate name="multiboxForm" property="mountains" id="mountain"> <html:multibox property="selectedMountains"> <bean:write name="mountain"/> </html:multibox> <bean:write name="mountain"/><br/> </logic:iterate> <br/> <html:submit/><html:cancel/> </html:form>这个相对比较复杂,也是比较中要的。<logic:iterate/>是迭代MultiboxForm中的mountians,
<html:multibox property="selectedMountains">
<bean:write name="mountain"/>
</html:multibox>
这个标签的作用就是selecteDMountains的值和迭代的mountain值一致的时候就会选中。
接下来说Radio,其实Form和Action部分都差不多,只是JSP页面有点不一样,Radio里面甚至牵涉到了JavaScript。
1.From的设计:
private String selectedMountain = "Kangchenjunga West"; private String[] mountains ={"Everest","K2","Kangchenjunga","Lhotse","Makalu","Kangchenjunga South","Lhotse Middle","Kangchenjunga West","Lhotse Shar","Cho Oyu"}; public String[] getMountains() { return mountains; } public void setMountains(String[] mountains) { this.mountains = mountains; } public String getSelectedMountain() { return selectedMountain; } public void setSelectedMountain(String selectedMountain) { this.selectedMountain = selectedMountain; }2.Action同上一样,切换到JSP页面去。
3.重点部分JSP:
<html:form action="/radio" name="radioForm" type="qiya.deng.struts.form.RadioForm"> <bean:define id="selectedRadio" property="selectedMountain" name="radioForm"></bean:define> <logic:iterate id="mountain" property="mountains" name="radioForm"> <bean:define id="mountainValue"> <bean:write name="mountain"/> </bean:define> <html:radio property="selectedMountain" value="<%=mountainValue%>" styleId="<%=mountainValue%>"/> <bean:write name="mountain"/><br/> </logic:iterate><br/> <html:submit/><html:cancel/> <script type="text/javascript"> <!-- var selectedRadio = document.forms["radioForm"].elements["<bean:write name="selectedRadio"/>"]; selectedRadio.checked=true; --> </script> </html:form>
"<bean:define/>"定义了一个PageContext作用域的属性selectedRadio,下面的JavaScript的作用就是根据这个属性找到应该选中的Radio。其他的地方和上面那个很相似的。如果还是不太理解先运行,看看生成的HTML代码。
相关文章推荐
- PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版)
- dropdownlist的动态绑定数据然后怎么添加默认项“请选择”以及如何清空成“请选择”
- 使用 Struts 2 进行动态数据处理
- ajax 中根据json数据不同 对页面中 选择框radio 进行动态选择
- 怎么把当前网站的所有.aspx动态网页转换成.html静态网页进行浏览呢?
- dropdownlist的动态绑定数据然后怎么添加默认项“请选择”或空值
- 在进行网站开发时应该怎么选择域名
- 如何从struts标签logic:iterator中取List中的对象的属性,并动态选择checkbox呢
- 根据选择的字段名进行动态导出Excel表
- XSD版本到底怎么选择正确的进行配置
- 转:怎么选择正确的CPU时钟进行性能测量?
- ZBrush中的动态网格该怎么进行运用
- 动态创建的文本框想要加上jQuery的datepicker功能变成日期选择控件该怎么办?
- Struts中用动态选择的元素创建复选框
- 使用随机森林和mRMR进行特征选择
- oracle用存储过程 进行行转列(执行动态SQL语句)
- 【转】如何避免IE对动态页面进行缓存?
- 如何对动态创建控件进行验证以及在Ajax环境中的使用
- 怎么在android中动态加载一个java 类?
- 茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP