b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ognl表达式_ognl apache_ognl表达式是什么

电脑杂谈  发布时间:2017-02-12 23:05:53  来源:网络整理

ognl表达式_ognl表达式是什么_ognl apache

OGNL是一种表达式语言,可以存取对象的属性或者调用对象的方法,能够遍历整个对象的,实现对象属性类型的转换等功能。(工程Struts2_1900_OGNL)。

这里需要做的试验较多,我们一个一个讲解。

ognl.jsp

<li>1.访问值栈中的action的普通属性: username = <s:property value="username"/> </li>

OgnlAction.java

    //试验1-------
    private String username;
    private String password;
    //试验1-------

    public String execute(){
        return SUCCESS;
    }

说明:这里的action中我们只有两个属性,我们通过OGNL表达式value="username"可以直接从值栈中取得属性的值。我们可以在值栈中找到对应属性的值。

ognl.jsp

<li>2.访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>

OgnlAction.java

    //试验2-------
    private User user ;
    //试验2-------

User.java

package com.bjsxt.struts2.ognl;
public class User {
    private int age = 8;

    public User(){}

    public User(int age) {
        super();
        this.age = age;
    }

    @Override
    public String toString() {
        return "user" + age;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

说明:

当我们使用地址:8080/Struts2_1900_OGNL/ognl.action?username=u&password=p访问时我们在值栈中发现user对象是null,之前我们知道struts2会帮我们实例化对象,但是这必须有个条件,就是地址后面必须跟上相应的值,如:

:8080/Struts2_1900_OGNL/ognl.action?username=u&password=p&user.age=10这时struts2才会帮我们实例化对象,同时我们的对象中必须有无参构造函数,因为struts2在实例化时需要用到。ognl表达式当然我们也可以自己在action方法中直接将user对象new出来,这相当于自己实例化对象了。

这里我们给出了几种取得普通属性的OGNL表达式,注意其区别。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32069-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...