当我们在页面使用超链接进行数据提交时,如果碰到换行时需要特别注意。
如:
<a href="comm_searchByClassAll.do?method=findProductByModel&cityId=${cityId } &brandCode=${brandCode }" class="font-white12-x">商品</a>
注意看其中的 cityId=${cityId }与&brandCode=${brandCode }之间是一个换行。
本来我的想法是,如果cityId的参数为空,在后台使用
if(cityId == null || "".equals(cityId)) { ......... }
这么一句就可以判断是否为空。可是不管我怎么弄,就是没有判断出来,非常让我郁闷!
后来仔细对比了一下浏览器状态栏上的路径,看到当cityId为空时,后面有很长的一段空白。
如:cityId=${cityId } ...........
此时我想到会不会是因为这一段空白,而导致判断失效?
经过实验,终于发现确实如此,也就是说如果我们在cityId后面加了一个换行符,那么它默认为很长的一段空白,而不是简单的一个空字符:“”。如此一来,我们只需在后台使用如下方式即可以:
if(cityId.trim() == null || "".equals(cityId.trim())) { .................. }
这样就可以将多余的空白去掉,再进行判断是否为空。
其实我们平时在判断一个字符串是否为空时,应该养成这种习惯,就是对要判断的字符串,先进行trim()处理,这样就不会出现一些莫名其妙的问题了!