当前位置:编程学习 > JAVA >>

复选框值的读取

我将多个复选框内容存入一个字段调用时为<%=user.gethobbit()>
显示的结果为1,2,4
但我想显示对应的中文。
1为听歌
2为跑步
3为看电视
4画画
所以让前台调用显示为听歌| 跑步 | 画画 --------------------编程问答-------------------- 如果只想显示中文,不需要数字,那你把复选框的value值设为中文就是了。
如果又想要数字,又想要中文,就麻烦点,如果需要这样,我再给你写一段伪代码。。。 --------------------编程问答-------------------- 功能需要。那你帮我写一段代码吧;谢谢了 --------------------编程问答-------------------- value值设置为数字和汉字的字符串 存储和取出的时候拆分字符串不就行了  --------------------编程问答-------------------- 我是新手,我不会写啊,你能具体下吗? --------------------编程问答-------------------- 给你看下最简单的,直接提交给jsp了啊,就不用什么servlet、struts之类的了。
第一种,只显示中文名字,不显示id,即拿到的值直接就是[听歌,跑步,画画],没有前面的序号:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>表单</title>
</head>
<body>
<form action="result.jsp">
1.<input type="checkbox" name="hobbit" value="听歌" />听歌<br>
2.<input type="checkbox" name="hobbit" value="跑步" />跑步<br>
3.<input type="checkbox" name="hobbit" value="看电视" />看电视<br>
4.<input type="checkbox" name="hobbit" value="画画" />画画<br>
<input type="submit" value="提交">
</form>
</body>
</html>

result.jsp的代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>结果</title>
</head>
<body>
<%
String[] hobbits = request.getParameterValues("hobbit");  //这里拿到的结果就是被你选中的那几个复选框的value

for(String hobbit : hobbits){
out.println(hobbit);  //打印出结果看一下
}

//new 你的User对象,将hobbits变量set到你的属性中,当然,你User中要有个类型为字符串数组的属性和相应的get/set方法。

 %>
</body>
</html> --------------------编程问答-------------------- 第二种,要获取到ID和名称的,有两种实现方式
   1.图省事,比较偷懒的痞子办法,呵呵
     把写表单的代码改成这样:
<form action="result.jsp">
1.<input type="checkbox" name="hobbit" value="1_听歌" />听歌<br>
2.<input type="checkbox" name="hobbit" value="2_跑步" />跑步<br>
3.<input type="checkbox" name="hobbit" value="3_看电视" />看电视<br>
4.<input type="checkbox" name="hobbit" value="4_画画" />画画<br>
<input type="submit" value="提交">
</form>

result.jsp中  String[] hobbits = request.getParameterValues("hobbit");拿到的值就是[1_听歌,2_跑步],然后,你只要迭代出来,把字符串切割就是了,下划线前面的就是ID,后面的就是名字。
够偷懒吧
--------------------编程问答-------------------- 另一种实现方式就复杂一些了,思路是这样的:
首先在你的java类中建立一个map之类的东西存放你所有的兴趣爱好,key是id,value是名字,结构如下:
[1:"听歌",2:"跑步",3:"看电视",4:"画画"]
然后jsp的代码:
form.jsp:
<form action="result.jsp">
1.<input type="checkbox" name="hobbit" value="1" />听歌<br>
2.<input type="checkbox" name="hobbit" value="2" />跑步<br>
3.<input type="checkbox" name="hobbit" value="3" />看电视<br>
4.<input type="checkbox" name="hobbit" value="4" />画画<br>
<input type="submit" value="提交">

result.jsp:
<%
String[] hobbits = request.getParameterValues("hobbit");  //这里拿到的结果就是被你选中的id

for(String hobbit : hobbits){
out.println(hobbit);  //打印出结果看一下(1,3,4)
//在这里需要拿到你的那个map,去获得value(兴趣的中文名字)
String name = map.get(hobbit);
if(name != null){  //说明在你的那个map中,是有你选中的这一项的
//那么你ID就是hobbit,名字就是name,都有了吧,接下来是封装了set到User对象中还是怎么处理就看你的需要了
}
}


 %> --------------------编程问答-------------------- 是我太笨了吧,最后一种没看懂,在java类中那个类是怎么整的? --------------------编程问答-------------------- 你的复选框的 
value="1_听歌"这种形式的 
在后台获取以后split拆分字符串。一切ok了
--------------------编程问答-------------------- 有简单的方式可以实现, 你可以这样,

每个checkbox后面加一个隐藏域,然后点击checkbox后,修改这个隐藏域的值,

而“听歌| 跑步 | 画画”这些值,去隐藏域里面取,就可以了。 --------------------编程问答--------------------
引用 8 楼 a00aa1 的回复:
是我太笨了吧,最后一种没看懂,在java类中那个类是怎么整的?


就是初始化那个MAP的时候这样:
Map hotMap = new HashMap();
hotMap.put(1,"听歌");
hotMap.put(2,"跑步");
hotMap.put(3,"看电视");
hotMap.put(4,"画画");
//当然了,如果多的话,这些可以从数据库取出来,用循环put
然后你前台用这个map去get就行了,key就是你的id,value就是你的中文名字。
这个方法没看懂就算了,用第二个懒人方法,一样可以实现你的需求的。
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,