这个是helloapp中的表单验证中的一个程序片断:
public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
{ ActionErrors=new ActionErrors();
if((userName==null)||(userName.length() <1))
errors.add("username",new ActionMessage("hello.no.username.error"));
reyurn errors;
}
if((userName==null)||(userName.length()<1))这个判断方法里面的两项不是一样的吗? 什么情况下会出现null的情况啊?既然为null那肯定是length<1了,还用加后面的吗?郁闷中
public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
{ ActionErrors=new ActionErrors();
if((userName==null)||(userName.length() <1))
errors.add("username",new ActionMessage("hello.no.username.error"));
reyurn errors;
}
if((userName==null)||(userName.length()<1))这个判断方法里面的两项不是一样的吗? 什么情况下会出现null的情况啊?既然为null那肯定是length<1了,还用加后面的吗?郁闷中
解决方案 »
- JavaScript读取文件中文乱码问题如何解决
- 在struts 的action里面得到 checkbox, 很奇怪的问题?????
- jfreechart的单位标注问题
- 跪求 文章内容 jsp 代码
- 新开的群8088638,希望大家过来捧场,主要交流java web方面的技术的
- 求助!!求spring mvc 数据验证实例,最好包含编程式验证和jsr 303验证!谢谢
- 谁能给我一份日历的程序?
- jsp中用到JavaBean时的目录设计问题
- 高分求源码:用jsp作白板交谈
- 请问servlet中设置的cookie能否在jsp中调用?
- 如何用java些网络管理工具
- 请大家帮忙看看这个"赋值变量不存在"的异常
空字符串和null是不一样的
String str1 = "";
System.out.println(str1.length());
System.out.println(str1==null);
一定要追根究底的话, 其实只要页面有<input type="text" name="username" value="">之类的元素,那么获取到的userName就不会为null
所以只要你确信提交的页面username是文本框, 那么你可以只写if(userName.length()<1)有些元素如单选框, 下接框, 在没有选中的情况下, 获取到的值会是null
另外一种情况用链接直接调用Action(而不是提交),有可能出现null: 如你的Action为hello.do, 页面有一个链接为<a href="hello.do">test</a>, 如果你不写userName==null这个判断条件, 就会报空指针异常, 写了就会有提示信息
如果是自己写的页面自己写的类,当然不会出现这种情况,但你写的类别人可能也会调用,那么情况就不是你所能控制的了