论坛首页 入门技术论坛

问一个简单的问题

浏览 4115 次
该帖已经被评为新手帖
作者 正文
   发表时间:2006-11-29  
在FormBean里验证数据
name == null || name.length() < 1  (Name为表单数据)
使用name == null 不就已经判断是否输入数据
为何还要使用 name.length() < 1 进行判断
本来以为后者是用来区别输入空格
但后来发现不是这样

   发表时间:2006-11-29  
""             
0 请登录后投票
   发表时间:2006-11-29  
""是这个....不是" "
基本知识...
0 请登录后投票
   发表时间:2006-11-29  
不很明白
详细点好吗?
0 请登录后投票
   发表时间:2006-11-29  
空格length为1   " "
空字串length为0 ""
0 请登录后投票
   发表时间:2006-11-29  
"" 与 " " 和 表达式有什么关系?
name == null 是为了防止不输入数据
name.length() 又是为了什么呢?
0 请登录后投票
   发表时间:2006-11-29  
天寒地冻  揭帖睡觉
0 请登录后投票
   发表时间:2006-11-29  
去问问你老师吧....我...说不清了...

如果有input 框到后台得到的就是""
如果没有input 框到后台得到的就是null
0 请登录后投票
   发表时间:2006-11-29  
我真怪笨来
0 请登录后投票
   发表时间:2006-12-06  
wangzicool 写道
在FormBean里验证数据
name == null || name.length() < 1  (Name为表单数据)
使用name == null 不就已经判断是否输入数据
为何还要使用 name.length() < 1 进行判断
本来以为后者是用来区别输入空格
但后来发现不是这样

jsp
<html:form name="myTestForm" action="myTest.do>
   <html:text property="name1" />
   <input type="text" name="name2" />
   <html:submit property="submit" value="提交" />
</html:form>

对于name1如果在myTestForm不存在,则会报错,该页面显示不出来。
这种情况下name1==null没有必要,当你什么都不填,提交时name.length()<1就会起作用,因为
"".length=0;
对于name2,如果myTestForm中有,能够被提交到form,如果没有也不会报错。
name2==null此时也不会有实际作用。
即在上面的情况下,name不会为null,这两种写法的区别在于name1能够把myTestForm中初始化的值显示出来,而name2不行。
MyTestForm
{
   private String name1="name1";
   private String name2="name2";
   //get
   //set
}


如果name2是必须的,即myTestForm中一定要接收name2,但你把name2写掉了。成了这样
jsp
<html:form name="myTestForm" action="myTest.do>
   <html:text property="name1" />
   <html:submit property="submit" value="提交" />
</html:form>

这样页面在初始化的时候不报错,
但因为你在验证时写了
name2 == null || name2.length() < 1
这时就会出现验证不通过,此时,如果form reset被调用,并且name2没有初始化成一个给定的值,则name2的值为null
这时,如果没有name2==null,则name2.length()会出现NullPointerException。
综上述,如果你能保证需要验证的项在jsp页面中一定会出现。
则可以只写name2.length() < 1


0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics