请帮忙!我为什么不能通过request对象中的方法来获得表单中填写的复选框和下拉列表框中的值?
请大家帮助我看看我写的form.html文件(表单及验证)和formdeal.jsp文件(表单处理文件),看看为什么我只能通过request显示出姓名、性别、年龄、邮箱、自我描述这些表单元素值,但是却获取不到职业、爱好这两个表单元素的值呢?谢谢你们了,急!!!!!!form.html如下:<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script language="javascript">
function check(){
if (document.form1.pass.value!=document.form1.confirm.value)
{
window.confirm("Password wrong");
document.form1.pass.focus();
return false;
}
if (document.form1.name.value=="")
{window.alert("No Name");
document.form1.name.focus();
return false;
}
if(document.form1.email.value=="")
{window.alert("No email");
document.form1.email.focus();
return false;
}
if (document.form1.pass.value.length<6)
{window.alert("Password too short");
document.form1.pass.focus();
return false;
}
if ((document.form1.email.value.indexOf('@',0)==-1)||(document.form1.email.value.indexOf('.',0)==-1))
{window.alert("email wrong");
document.form1.email.focus();
return false;
}
if (!(document.form1.age.value>=0&&document.form1.age.value<=200)||document.form1.age.value=="")
{window.alert("年龄不在0~200范围之内");
document.form1.age.focus();
return false;
}
document.form1.submit();
}
</script>
<body>
<form method="get" name="form1" action="formdeal.jsp">
<p>注册信息:</p>
<p>姓名:<input type="text" name="name" size="20"></p>
<p>性别:<input type="radio" value="男" checked name="sex">男
<input type="radio" name="sex" value="女">女</p>
<p>年龄:<input type="text" name="age" size="20"></p>
<p>职业:<select size="1" name="work">
<option value="教师">教师</option>
<option value="学生">学生</option>
<option selected value="职员">职员</option>
</select>
</p>
<p>邮箱地址:<input type="text" name="email"><p>
<p>爱好:
<input type="checkbox" name="CC" value="旅游">旅游
<input type="checkbox" name="CC" value="看书" checked>看书 <input type="checkbox" name="CC" value="游戏">游戏
</p>
<p>
<input type="checkbox" name="CC" value="扑克">扑克
<input type="checkbox" name="CC" value="保龄">保龄
<input type="checkbox" name="CC" value="网球">网球</p>
<p>密码: <input type="password" name="pass" size="20"></p>
<p>确认密码:<input type="password" name="confirm" size="20"></p>
<p>自我描述:</p>
<p><textarea rows="2" name="des" cols="20"></textarea></p>
<p><input type="button" value="提交" name="B1" onclick="check()"></p>
</form>
</body>
</html>
formdeal.jsp如下:
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<body>
恭喜您,注册成功!请牢记您的如下信息:
<br>
姓名:<%=request.getParameter("name")%>
<br>
性别:
<%
if(request.getParameter("sex").equals("男"))
out.print("男");
else
out.print("女");
%>
<br>
年龄:<%=request.getParameter("age")%>
<br>
<%
String work=request.getParameter("work");
String value="";
if(work.equals("教师"))
value="教师";
else if(work.equals("学生"))
value="学生";
else
value="职员";
out.print("职业:"+value);
%>
<br>
邮箱地址:<%=request.getParameter("email")%>
<br>
<%
String[] fonds=request.getParameterValues("CC");
value="";
for(int i=0;i<fonds.length;i++)
{if(fonds[i].equals("旅游"))
value=value+"旅游、";
else if(fonds[i].equals("看书"))
value=value+"看书、";
else if(fonds[i].equals("游戏"))
value=value+"游戏、";
else if(fonds[i].equals("扑克"))
value=value+"扑克、";
else if(fonds[i].equals("保龄"))
value=value+"保龄、";
else
value=value+"网球";
}
out.print("爱好:"+value);
%>
<br>
自我描述:<%=request.getParameter("des")%>
</body>
</html>
[解决办法]
<% String name=""; String[] aihao = request.getParameterValues("CC"); for(int i= 0;i<aihao.length;i++) { name+= aihao[i]+","; System.out.print(aihao[i]); } out.print("爱好是"+name); %>
[解决办法]
formdeal.jsp如下: 在这个jsp文件的第二列 写上<%@ page language="java" contentType="text/html; charset=gb2312"%> <% request.setCharacterEncoding("gbk"); response.setCharacterEncoding("gbk"); %><html>
[解决办法]
改改
formdeal.jsp如下: 在这个jsp文件的第二列 写上<%@ page language="java" contentType="text/html; charset=gb2312"%> <% request.setCharacterEncoding("gb2132");//统一编码 和前一个页面编码一致 response.setCharacterEncoding("gb2132"); %><html>
[解决办法]
就是编码的问题.
两种较简单的方法:
1.把第一个html改成jsp
2.把radio和select的value值用英文代替