也就是说,不管接受霸王条款的复选框有没有打钩,返回的都是空字符串集??这是为什么????
if(request.getParameterValues("isAccpet")!=null) { isAccept = "true"; } else { isAccept = "false"; }
if(isAccept.equals("true")) { u.setFlag(true); } else { u.setFlag(false); }
<td class="title">是否接受协议:</td> <td class="content"> <jsp:getProperty name="regUser" property="flag"/></td>
首先,应该是getParameter,这是个单选框,返回的只有一个数值。其次,你在servlet这个类里,声明了一个string类型的变量isAccept来接受单选框的值,你用getParameterValues是会报错的,因为values获得的是一个数组,不能传到单独的一个字符串变量里去。直接报错,连编译都通不过,更不要说传对象了。
如果勾上,则浏览器发送字符串"on"到服务器,把它存进request对象,通过request.getParameter("isAccept")就可以 取到该字符串,也可以通过request.getParameterValues("isAccept")[0]取到该字符串! 如果没勾选,那么浏览器并没有发送数据给服务器,通过request.getParameter("isAccept")或者 request.getParameterValues("isAccept")都会返回null,表示里面没有任何数据
@Juneava ,我跟你一样的错误,无语了
isAccept = "true" 改成 isAccept = request.getParameter("isAccept") 试试