首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

在后盾判断参数是否为空时应当注意的一点

2012-11-10 
在后台判断参数是否为空时应当注意的一点当我们在页面使用超链接进行数据提交时,如果碰到换行时需要特别注

在后台判断参数是否为空时应当注意的一点

当我们在页面使用超链接进行数据提交时,如果碰到换行时需要特别注意。

?????? 如:

?

<a href="comm_searchByClassAll.do?method=findProductByModel&cityId=${cityId } &brandCode=${brandCode }" style="margin: 0cm 0cm 0pt;">注意看其中的 cityId=${cityId }与&brandCode=${brandCode }之间是一个换行。

本来我的想法是,如果cityId的参数为空,在后台使用

  if(cityId == null || "".equals(cityId)) { ......... } 

???

这么一句就可以判断是否为空。可是不管我怎么弄,就是没有判断出来,非常让我郁闷!

后来仔细对比了一下浏览器状态栏上的路径,看到当cityId为空时,后面有很长的一段空白。

如:cityId=${cityId }???????????????????????? ...........

此时我想到会不会是因为这一段空白,而导致判断失效?

?????? 经过实验,终于发现确实如此,也就是说如果我们在cityId后面加了一个换行符,那么它默认为很长的一段空白,而不是简单的一个空字符:“”。如此一来,我们只需在后台使用如下方式即可以:?

?

if(cityId.trim() == null || "".equals(cityId.trim())) { .................. } 

???

这样就可以将多余的空白去掉,再进行判断是否为空。

其实我们平时在判断一个字符串是否为空时,应该养成这种习惯,就是对要判断的字符串,先进行trim()处理,这样就不会出现一些莫名其妙的问题了!

?

?

?

?

?

?

?

?

?

?

?

?

?

1 楼 fly_ever 2008-10-24   你这里还是不对啊。
引用
if(cityId.trim() == null || "".equals(cityId.trim())) { .................. } 

如果cityId为null的话,就不会有trim()方法了,你这句话就要报错了。
所以前面那个应该为
null== cityId 2 楼 amcucn 2008-10-25   cityId为null的话,就不会有trim()方法了,你这句话就要报错了。
所以前面那个应该为
null== cityIdfly_ever 写道
你这里还是不对啊。
引用
if(cityId.trim() == null || "".equals(cityId.trim())) { .................. }&nbsp; 如果cityId为null的话,就不会有trim()方法了,你这句话就要报错了。所以前面那个应该为null== cityId

你说的没错,这里应该写成request.getParameter("cityId").trim() 3 楼 joylili 2008-10-27   俺不明白了,你为什么加换行符呀?(还是当时粗心多打的?)如果要是传两个或两个以上的参数就"&"做连接就好了.小女子不懂,有望指教!谢谢! 4 楼 amcucn 2008-10-27   joylili 写道
俺不明白了,你为什么加换行符呀?(还是当时粗心多打的?)如果要是传两个或两个以上的参数就"&amp;"做连接就好了.小女子不懂,有望指教!谢谢!

加换行符是因为代码过长,然后为了方便阅读,所在才加的! 5 楼 zhmy0129 2011-11-17   org.apache.commons.lang.StringUtils
StringUtils.isBlank()
判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0
StringUtils.isNumeric()
判断数字

热点排行