2007-12-12

webwork if test

关键字: WebWork中if等条件标签中String和Char的一个小陷阱
WebWork中if等条件标签中String和Char的一个小陷阱 ( 2005-01-22 ) 返回 WebWork文章

WebWork中if等条件标签中String和Char的一个小陷阱

本文仅用来提醒在WebWork的条件标签使用时要注意String和Char的区别.一个很简单的问题.
假设你的Action中有一个字段,例如叫name,那么对应的方法是:

JAVA代码

public String getName()
{
return name;
)


通常,你的WebWork的视图文件中,如果用到字段比较时,例如if,else等,写法通常如下:


<ww:if test="name.equals(’a’)">OK</ww:if>



如果你的名字是 a 那么结果会怎么样哪? 结果是没有打印出OK来,这是为什么哪?

但是如果你的name是2个字符或者更多,那么就会出来正确的结果了.


<ww:if test="name.equals(’abc’)">OK</ww:if>



看一下下面的Action中的部分代码,你应该也就会明白了吧.

public char getMyChar()
{
return ’a’;
}

public String getHello()
{
return "a";
}


在看看jsp中的代码:


hello<br>
<ww:if test="’a’.equals(’a’)">World</ww:if>
<br>
I am <ww:property value="hello" />,and test <ww:if test="hello.equals(\"a\")">OK</ww:if>
<br>
I am <ww:property value="myChar" />,and test <ww:if test="myChar.equals(’a’)">OK</ww:if >


这个问题是个容易忽略的问题,往往是想不到,所以遇到此问题时还真是很着急.解决后,觉得太简单了.可能还是Java基本功不好吧 :)

如果你的变量肯定是一个字母,那就用char,如果不一定,那就只好用hello.equals(\"a\")的写法了.



 
创造共用协议:署名,非商业,保持一致 除经特别注明外,本文章版权归JScud Develop团队或其作者所有.
署名,非商业用途,保持一致. scud(飞云小侠) JScud Develop
评论
发表评论

您还没有登录,请登录后发表评论

dingdangxiaoma
搜索本博客
我的相册
Ac3e773f-5e17-3eb5-8a2c-9ef057a4e9a0-thumb
未命名4
共 9 张
最近加入圈子
存档
最新评论