首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

请帮忙!小弟我为什么不能通过request对象中的方法来获得表单中填写的复选框和下拉列表框中的值

2012-01-02 
请帮忙!我为什么不能通过request对象中的方法来获得表单中填写的复选框和下拉列表框中的值?请大家帮助我看

请帮忙!我为什么不能通过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>

[解决办法]

Java code
  <%         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);     %>
[解决办法]
JScript code
formdeal.jsp如下: 在这个jsp文件的第二列 写上<%@ page language="java" contentType="text/html; charset=gb2312"%> <%      request.setCharacterEncoding("gbk");      response.setCharacterEncoding("gbk"); %><html>
[解决办法]
改改
Java code
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值用英文代替

热点排行