注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

山林客

简单不一定幸福,但幸福其实可以很简单。

 
 
 

日志

 
 
关于我

2004年毕业于中山大学,毕业后专注于网站开发和网络工程技术。先后取得SCWCD、CCNP认证,对Asp/Java有丰富的开发经验,对网络工程也有较深的研究。真诚欢迎大家多多指教、多多指点、多多指正,共同分享IT道路和人生道路上的喜怒哀乐。

Struts 1.x中复选框的“选中”问题  

2009-09-02 18:06:41|  分类: JavaEE |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

由于html:checkbox标签本身没有checked这个属性,而我们的开发需求中则经常需要默认选中某些项,这给开发过程带来了一定的不便。不过,Struts还为我们提供了另外一个标签——html:multibox,这个标签跟html:checkbox类似,最终都是输出<input type="checkbox"/>这种表单域,但它可以轻松实现“默认选中”效果。
使用方法也非常简单,即在对应的Form中设置默认值即可。
例如有以下一个邮件订阅表单:
1.请填写您的Email
2.请选择您要订阅的内容:
(1)优惠活动(默认选中)
(2)降价信息(默认选中)
(3)最新产品(默认不选中)
(4)公司动态(默认不选中)

//SubscribeForm.java
public class SubscribeForm extends ActionForm {
 private String[] contents={"c1","c2"};
 private String email;
 private boolean flag = false;
 public ActionErrors validate(ActionMapping mapping,
   HttpServletRequest request) {
  ActionErrors errors = new ActionErrors();
  if(email==null||"".equals(email)){
   errors.add("email", new ActionMessage("email.null"));
  }
  if(flag==false){
   errors.add("contents", new ActionMessage("contents.null"));
  }
  return errors;
 }
 public void reset(ActionMapping mapping, HttpServletRequest request) {
  
 }
 public String[] getContents() {
  return contents;
 }
 /*当没有选中任何选项的时候,这个方法不会被调用
  *因此,不能使用常规的非空验证方法来验证是否有选中,因为没有选中的时候默认值是{"c1","c2"}
  *不过,我们却可以利用它的这个特性来验证,有调用则非空,否则没有选中
  */

 public void setContents(String[] contents) {
  this.contents = contents;
  flag = true;
 }
 public String getEmail() {
  return email;
 }
 /*当没有填写Email的时候,这个方法也会被调用
  *因此,可以使用常规的非空验证方法来验证是否填写了Email
  */

 public void setEmail(String email) {
  this.email = email;
 }
}

//subscribe.jsp
<html:form action="subscribe.do" method="post">
请填写您的Email:<html:text property="email"/><br/>
请选择您要订阅的内容:
<html:multibox property="contents" value="c1"/>优惠活动
<html:multibox property="contents" value="c2"/>降价信息
<html:multibox property="contents" value="c3"/>最新产品
<html:multibox property="contents" value="c4"/>公司动态
<br/>
<html:submit value="订阅"/>
</html:form>

 

ps:不过,直接将默认值写到Java中,也并不是一个好的习惯,假如某天需要加入一个默认选项,又要修改Java代码了。

  评论这张
 
阅读(1282)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018