这个是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的情况啊?位置颠倒一下可以吗?高手答一下呀
(注:此方法是sun的官方关于struts的官方例子)
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的情况啊?位置颠倒一下可以吗?高手答一下呀
(注:此方法是sun的官方关于struts的官方例子)
解决方案 »
- 为什么我的C:\apache-tomcat-5.5.27\work\Catalina\localhost下面没有.java文件
- Tokyo Cabinet
- 请问,dao是什么?
- 向jsf table组件中动态添加组件
- 求解回调函数
- 使用OpenOffice转换pdf时出现了一个奇怪的问题conversion failed: could not load input document
- HELP ME!
- 请大家帮忙
- 不知道struts哪儿可以下载?
- 我在网页中嵌入Excel,为了显示中文我用<%@ page contentType="application/vnd.ms-excel;charset=GB18030" %>,但是在显示网页前它提示我
- 怎么将<div> 中的id , class这两属性的值可以动态赋值。
- 帮我看看jsp这个代码写的对不对
给你的回答是不可以.
因为得到userName后,首先应该判断是不是等于null,如果不是,那么应该判断他是不是为空,即userName.length()<1.
如果倒过来的话,先执行userName.length()<1,一旦userName==null,那么就会出现异常的.
而现在这样写的话,如果userName==null了,也就是说条件已经有一个成立了,那么后面userName.length()<1就不会被执行了.
没有赋值 userName.length() <1
null和空字符串就不一样啊
如果是null肯定不会出现空字符串了,后边就不用判断了
所以这么写是最有效率了
如果在form里面验证的话,username为null,如果<input type="text" name="test" value="">
username的length=0
userName.length<1是判断你的页面userName的textbox的value是不是"",明白了么?
1.<input type="text" name="username">
这个时候在form表单验证的时候username=null
2.<input type="text" name="username" value="">
这个时候在form表单验证的时候username.length=0,username.length<1value写不写都不会报错,但是在from中却是两个不同的条件
那个struts的例子就是判断username是否为空或者给了username初使值""后,没有写任何东西就提交了