您的位置:首页 > 其它

form表单的各种input的submit传值

2010-05-13 16:45 585 查看
1. 在服务器端获取参数的时候,HttpServletRequest.getParameter(String name)方法的返回结果根据如下情况区分:
1.1 请求消息中不包含这个参数,返回null。
1.2 请求消息中包含这个参数,但是没有值。例如param1=¶m2=123中的param1。这种情况下返回空字符串””。
1.3 请求消息中包含多个命名相同的参数。例如param1=1¶m1=2中的param1。这种情况下,返回第一个参数的值。例如上面的1。如果使用HttpServletRequest.getParameterValues(String name),则返回一个包含所有命名相同的值的Sring数组。
2. <input type="submit" name=" " value=" ">。
一个页面中可以有多个submit元素,点击某个submit按钮的时候,浏览器会将form的数据封转后发送给服务器,其中包括一对当前点击的submit信息的数据,为当前点击submit按钮的name和value。其他不点击的submit按钮不传递name和value值。
所以可以通过如下语句判断点击了那个submit按钮。
if(req.getParameter("submit按钮的name属性") != null && req.getParameter("submit按钮的name属性").equals("submit按钮的value属性"))
{
执行语句
}
如果某个submit按钮没有name属性。点击这个按钮的时候,浏览器也会将form的数据封转后发送给服务器,但是不包含submit按钮本身的name和value信息。所以服务器端不能判断是点击了哪个按钮。
3. <input type="button" name=" " value=" ">
点击一个submit按钮的时候,浏览器会自动提交数据到服务器,但是点击一个Button的时候,浏览器只是单纯的执行这个Button的onclick事件。如果没有onclick事件,就什么也不做。可以在onclick事件中通过JavaScript代码提交表单。
例如:
function button1_click()
{
document.form1.action = “check.jsp”;
document.form1.submit();
}
点击button按钮不传递button的name和value值。
4. 各种input的传递name和value的情况:
前提是,只要没有name属性,就不传递。
text和textarea不管是否为空,都将传递到服务器,为空时传递的value值为空字符串。
checkbox和radio的状况是,只有被选中的才会传递,不选择的不传递。如果选中了没有value的checkbox和radio,传递的value值默认为”on”。
hidden不管如何,都会被传递给服务器。
5. 一个实践
5.1 jsp页面
<form action="<%=request.getContextPath()%>/checkboxtest"
method="post" target="_blank">
<table>
<tr>
<td>
<input type="checkbox" name="selectbooks" value="1">
</td>
<td>
1
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="selectbooks" value="2">
</td>
<td>
2
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="selectbooks" value="3">
</td>
<td>
3
</td>
</tr>
<tr>
<td>
<input type="submit" name="check" value="查看">
</td>
<td>
<input type="submit" name="delete" value="删除">
</td>
</tr>
</table>
</form>
5.2 后台Servlet代码:
resp.setContentType("text/html;charset=UTF-8");
String[] selectBooks = req.getParameterValues("selectbooks");
StringBuffer selectBookIds = new StringBuffer();
int flag = 0;
for (String selectbook : selectBooks) {
if (flag == 0) {
selectBookIds.append(selectbook);
}
else
{
selectBookIds.append("," + selectbook);
}
flag = 1;
}

if(req.getParameter("check") != null)
{
resp.getWriter().println("选择的图书的id有:" + selectBookIds.toString());
}
else if(req.getParameter("delete") != null)
{
resp.getWriter().println("删除的图书的id有:" + selectBookIds.toString());
}
else
{
resp.getWriter().println("返回的图书的id有:" + selectBookIds.toString());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: