举个简单例子吧,希望大神们 能明白我的问题
MySQL中,USER表为 也就是说 name和password都是 not null的
create table USER (ID int auto_increment primary key, NAME varchar(20) not null, password varchar(20) not null)
在前台页面 input.jsp中使用的是 DomainModel的方式向 AddAction中传递参数
<form action="login" method="post"> <table> <tr> <td>用户名: </td> <td><input type="text" name="user.name" /></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="user.password" /></td> </tr> <tr> <td><input type="submit" value="提交" /> </td> </tr> </table> </form>
如果在form中不去录入 user.name或者 user.password的值的话(例如:用户名为asdf,而密码那个不填写),在AddAction中通过 Hibernate 向USER表添加记录时候 不是因该报告 字段为空的提示而无法增加记录的么? 但实际上 为什么我 可以插入该条记录呢 ; 并且在password字段的值没有数据,既不显示值,也不显示Null
具体 看一下我的截图吧
第一点:我首先想到的可能也是输入了空格。
第二点:你又没有用Hibernate,如果用了,这个结果是正常的。
建议你使用js判断文本类容是否为空。
你在前台肯定是不小心输入了空格,所以数据库中的数据是字符串,而且这个字符串是空格。
恩,同意上述说法.
你输入空格,形成一个空空串,一般除了服务器端验证外,还需要在客户端进行验证
你插入的password肯定是一个空字符串,而不是一个null,所以他不会报错。
断点调试一下,看看传到后台的和将要写库的数据是不是空格?