el表达式的取值

el表达式的取值,第1张

<%
requestsetAttribute("fil","value");
%>
<span contenteditable="false"><input name="fillins${fil}" /></span>

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

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

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

public class User{
    
    private String name = "小明";
    // 一般我们还会写 get 和 set方法
    public String getName() {
return name;
    }
    
    public void setName(String name) {
thisname = name;
    }
    
    public String getPasword() {
        return "mima123";
    }
}

那么如果我在indexjsp这个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.outofmemory.cn/yw/13379737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存