form表单判断是否为空——JavaWeb
程序员文章站
2024-03-11 20:23:31
...
在编程时,以前没有注意,突然遇到这个问题,就是form表单完全是空,从前台取到后台是空,但不是null,导致可以添加进数据库但是没有什么信息,所以,我百度了一下发现此空不属于null需要额外判断一下。
最后我找到三个方法
第一个
在jsp界面通过js判断,使用alert反馈给使用者,name是给后台获取数据信息的标识符,id是js定位的标识符。
<div class="form">
<form action="/addPacket" method="post" onsubmit="return check()">
分享名称:<input type="text" name="name" id="naem"/><br />
分享方式:<input type="text" name="type" id="type"/><br />
分享地址:<input type="text" name="url" id="url"/><br />
提取密码:<input type="text" name="code" id="code"/><br />
解压密码:<input type="text" name="pwd" id="pwd"/><br />
<input type="submit" value="添加" >
</form>
<form action="/index" method="post">
<input type="submit" value="返回">
</form>
</div>
</body>
<script type="text/javascript">
function check(){
var name = $("#name").val();
var type = $("#type").val();
var url = $("#url").val();
if(name == null || name == "" || type == null || type == "" || url == null || url == ""){
alert("名称、方式、地址不能为空!");
return false;
}
return true;
}
</script>
第二种
在后台判断,判断后通过request.setAttribute()
反馈信息,如果成功就添加成功,如果失败就把错误信息反馈给用户。
后台
@RequestMapping(value="/addPacket")
public String addPacket(HttpServletRequest req,HttpServletResponse resq,Model model)throws ServletException, IOException{
//解码
req.setCharacterEncoding("UTF-8");
String name=req.getParameter("name");
String type=req.getParameter("type");
String url=req.getParameter("url");
String code=req.getParameter("code");
String pwd=req.getParameter("pwd");
if(name!=null && type!=null && url!=null && name!="" && type!="" && url!="") {
pac.addPacket(name, type, url, code, pwd);
return "index";
}
else {
req.setAttribute("addFail","添加失败,名称、方式、地址不能为空!");
return "addPacket";
}
}
前端
<div class="error">
<%=request.getAttribute("addFail")==null ? "":request.getAttribute("addFail") %>
</div>
第三种
就是在mapper,数据库操作时加入判断,一般不这么做,因为这样不能很好的反馈,如果不按照规定输入就会报错。