关于el表达式大小写问题

在学习struts的时候遇到了一些问题.可笑的是:所遇到的问题并不是struts技术本身,而是来自el表达式的一些挑战.其中最令人困惑的是EL的大小写问题.
可以肯定的一点是:即便在类中没有定义属性,只要有getter方法,el表达式就起作用.
但问题是如果用EL表达式, 类中的属性也许没有定义,这时使用${class.propertyName}输出结果.这里的带有下划线的P该大写还是小写呢?

以下是实例:

private String name="xlx";
    public String getName(){
        return name;
    }
    public String getPassword(){
        return "password";
    }
    public String getABook(){
        return "Thinking in Java";
    }
    public String getABC(){
        return "ABC";
    }

<br>${requestScope.page.name}
<br>${requestScope.page.password}
<br>${requestScope.page.ABook}--------小写a并不能正确显示
<br>${requestScope.page.ABC}
第二和第三个都没有定义属性,只有getter方法.二是可以和有属性的一name一样输出的,但三不可以.当三的ABook首字母大写时.显示正确.由此可见,单个单词可以像有属性的字段一样输出,当getter方法出现两个紧紧相连的大写字母时,首字母要大写.但如果出现两个或两个以上大写字母而他们并不相连呢?以下是实例:
public String getUserAddress(){
    return "user address";
}

<br>${requestScope.page.userAddress}
居然可以和有属性的一样使用!
private String aBCD="a--B--C";
public String getABCD(){
    return aBCD;
}
<br>${requestScope.page.aBCD}
上述表达式不能显示.当把ABCD时可以正确显示.  由此可见,属性的有无与EL是没有关系的,EL只关系类中是否有getter方法,当有相连的两个大写字母时,EL的输出应该采取和getter方法get后一致的大小写规则.
总之,在经过实践后,EL表达式需要注意的使用只有一条:当get方法后的字符如果前两个都是大写时,EL表达式需要大写.除此之外均为小写.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值