问答详情
源自:1-11 Servlet获取表单数据

不管是否接受霸王条款,request.getParameterValues("isAccpet")都是null,信息上都是false,怎么解决?

也就是说,不管接受霸王条款的复选框有没有打钩,返回的都是空字符串集??这是为什么????

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">&nbsp;<jsp:getProperty name="regUser" property="flag"/></td>


提问者:Juneava 2016-11-21 20:44

个回答

  • 空指针异常null
    2016-11-22 14:05:45
    已采纳

    首先,应该是getParameter,这是个单选框,返回的只有一个数值。其次,你在servlet这个类里,声明了一个string类型的变量isAccept来接受单选框的值,你用getParameterValues是会报错的,因为values获得的是一个数组,不能传到单独的一个字符串变量里去。直接报错,连编译都通不过,更不要说传对象了。

  • 壹牛小二亦峰4242200
    2017-03-27 17:00:59

    如果勾上,则浏览器发送字符串"on"到服务器,把它存进request对象,通过request.getParameter("isAccept")就可以
    取到该字符串,也可以通过request.getParameterValues("isAccept")[0]取到该字符串!
    如果没勾选,那么浏览器并没有发送数据给服务器,通过request.getParameter("isAccept")或者
    request.getParameterValues("isAccept")都会返回null,表示里面没有任何数据


  • 壹牛小二亦峰4242200
    2017-03-27 04:10:14

    @Juneava ,我跟你一样的错误,无语了

  • 纯情小豆比
    2016-12-05 17:41:26

    isAccept = "true" 改成 isAccept = request.getParameter("isAccept") 试试