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

今天遇到一个很奇怪的问题 <c:  test="${item.type = ='1'}"   ||   <s: "${item.type = ='1'}"  判断 char  变量 老不正确
后改成 <s:  test="${item.type} = =1"
<c:if 判断一个char类型的字段怎么也不正确后来查了一下=""> 转 http://www.jscud.com/srun/news/viewhtml/4_2005_1/26.htm
</c:if>

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’)">Worldww:if>
<
br>
I am
<ww:property value="hello" />,and test <ww:if test="hello.equals(\"a\")">OKww:if>
<
br>
I am
<ww:property value="myChar" />,and test <ww:if test="myChar.equals(’a’)">OKww:if >


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

如果你的变量肯定是一个字母,那就用char,如果不一定,那就只好用hello.equals(\"a\")的写法了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值