怎么用EL表达式调方法

 我来答
匿名用户
2015-11-25
展开全部

在JSP页面用EL表达式调用方法的话,一般情况下是调用的getXxx()方法或者isXxx()方法

是为了获取属性值,举个例子吧


例如你写了个类叫做User,然后定义了name属性.

public class User{
    
    private String name = "小明";

    // 一般我们还会写 get 和 set方法.
    public String getName() {
return name;
    }
    
    public void setName(String name) {
this.name = name;
    }
    
    public String getPasword() {
        return "mima123";
    }
}

那么如果我在index.jsp这个jsp页面中用EL表达式获取name的话,就可以通过用
${name }来获取,之所以可以这样调用是因为我们写了public String getName() {}这个方法

${name } EL表达式会自动的把name的首字母n转成大写变成Name,然后加上get,也就是拼接成getName()这个方法

然后他去User类中找这个方法,找到了就执行这个方法获取返回值,EL表达式就是这样获取到javabean的属性值的.

有必要说明的是,这个${name } EL表达式里面的name不是我们在User类中定义的这个name属性.

private String name = "小明";

而是 public String getName()这个方法方法名去掉get这三个字母然后把N变成小写之后的字符串,也就是name.
 
意思就是说,就算我们在User类中没有定义 private String name = "小明"; 这个name属性.
而直接写成

public String getName() {
    return "小明";
}

EL表达式也会获取到这个方法的返回值.

我们一般说用EL获取某某对象的属性,其实就是那个对象的属性,有一个对应get方法,而在这个get方法里面用return 返回了那个属性值,所以才可以获取到.

再然后就是我再上面代码里有一个getPassword()方法,但是没有定义password这个属性,这样子做是为了证明只要有get方法,EL表达式在页面中就可以获取到.只要你把getPassword的get去掉,然后把Password的P换成小写p,变成password再jsp页面也是可以通过${password }获取getPassword()这个方法的返回值的.

还有一种情况,上面我说 可以调用getXxx()和isXxx()的方法并获取到他们的返回值,
其实很多人都不知道,EL表达式默认还会调用 is开头的isXxx()方法,不信?去写一个测试就知道了!


关于楼主问的怎么用EL调用方法,其实也是可以调用方法的,只不过调用除getXxx()和isXxx()之外的方法比较麻烦,而且只能调用静态方法.


具体可以参考 http://www.cnblogs.com/xdp-gacl/p/3938361.html


hsazj
推荐于2018-05-17 · TA获得超过448个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:80.4万
展开全部
在JEE6中,JSP中的EL表达式支持带参数的方法调用了。可以像这样调用:
${foo.bar(baz)} 。
JAVAEE5确实不支持。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hxy850809
2011-08-20 · TA获得超过160个赞
知道小有建树答主
回答量:569
采纳率:0%
帮助的人:320万
展开全部
EL表达式,无法直接调用任意的Java方法,只能调用get和set方法,属于Oracle(Sun已被收购)公司的命名规范。
想调用任意方法,只能自己写标签库。
追问
能举个例子吗?怎么个调用get、set法,我不会?还什么静态的?
public static getDate(而且还必须有参数吗?){}
调用的时候是这样写的-----------> ${foo.bar(baz)} (这是什么意思嘛),那方法名getDate()写在哪儿呢?都不懂嘛!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式