一只土豆
2015-12-30 23:06
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
Users u = new Users();
String username,mypassword,gender,email,introduce;
boolean isAccept;
Date birthday;
String[] favorites;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try
{
username = request.getParameter("username");
mypassword = request.getParameter("mypassword");
gender = request.getParameter("gender");
email = request.getParameter("email");
introduce = request.getParameter("introduce");
birthday = sdf.parse(request.getParameter("birthday"));
isAccept=request.getParameter("isAccept")!=null?true:false;
//用来获取多个复选按钮的值
favorites = request.getParameterValues("favorite");
u.setUsername(username);
u.setMypassword(mypassword);
u.setGender(gender);
u.setEmail(email);
u.setFavorites(favorites);
u.setIntroduce(introduce);
u.setFlag(isAccept);
u.setBirthday(birthday);
//把注册成功的用户对象保存在session中
request.getSession().setAttribute("regUser", u);
//跳转到注册成功页面
request.getRequestDispatcher("../userinfo.jsp").forward(request,response);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}一下两行代码 为什么使用第二行代码时不勾选复选框就会报空指针异常 而用第一行代码就能够正常返回false呢? 我的理解: 当不勾选时request.getParameter("isAccept").equals("true")该表达式的值为假那么则返回false
isAccept=request.getParameter("isAccept")!=null?true:false;
isAccept=request.getParameter("isAccept").equals("true")?true:false;
一般这种情况这样写比较合理isAccept="true".equals(request.getParameter("isAccept"))?true:false; 这样既符合你的写法,也不会报空指针
isAccept这个复选框你不勾选的时候是不会传任何数据过来的。所以服务器用request.getParameter("isAccept")取得的是null。这是个经验,记得就行了
JAVA遇见HTML——Servlet篇
160608 学习 · 1093 问题
相似问题