html如何使用ognl

OGNL(ObjectGraph Navigation Language)是一种强大的表达式语言,用于在Java应用程序中操作对象图,HTML本身不支持OGNL,但可以通过Java Web框架(如Struts2、Spring MVC等)在后端使用OGNL,以下是如何在Struts2中使用OGNL的详细步骤:

创新互联-专业网站定制、快速模板网站建设、高性价比尖山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式尖山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖尖山地区。费用合理售后完善,10余年实体公司更值得信赖。

1、添加Struts2依赖

在项目的pom.xml文件中添加Struts2依赖:


    org.apache.struts
    struts2core
    2.5.28

2、创建一个简单的Java类

创建一个名为Person的Java类,包含name和age属性:

public class Person {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

3、创建一个简单的Action类

创建一个名为PersonAction的Java类,继承ActionSupport,并实现execute方法:

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.ognl.OgnlContext;
import org.ognl.OgnlException;
import org.ognl.OgnlRuntime;
import org.ognl.PropertyAccessor;
import org.ognl.enhance.EnhMethodPropertyAccessor;
import org.ognl.enhance.JavaBeanAccessHelper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
@Controller("personAction")
@RequestMapping("/person")
@Results({@Result(name = "success", location = "/WEBINF/jsp/person_success.jsp"), @Result(name = "error", location = "/WEBINF/jsp/person_error.jsp")})
public class PersonAction extends ActionSupport {
    private Person person;
    private Map model = new HashMap<>();
    private static final long serialVersionUID = 1L;
    @Override
    public String execute() throws Exception {
        try {
            // 使用OGNL设置Person对象的属性值
            OgnlContext context = new OgnlContext();
            context.setMemberAccess(new EnhMethodPropertyAccessor()); // 支持setter方法访问属性值
            PropertyAccessor accessor = new JavaBeanAccessHelper(); // 提供对JavaBean的支持
            context.setRoot(person); // 设置根对象为Person对象
            context.setPropertyAccessor(accessor); // 设置属性访问器为JavaBeanAccessHelper实例
            OgnlRuntime ognlRuntime = new OgnlRuntime(); // 创建OGNL运行时实例
            Object result = ognlRuntime.parseExpression("name=='张三' && age > 18").getValue(context, context); // 使用OGNL表达式设置条件判断属性值是否满足要求,如果满足则返回true,否则返回false或null(默认为false)
            if (result != null && result instanceof Boolean && (Boolean) result) { // 如果OGNL表达式返回值为true,则表示属性值满足要求,将Person对象添加到模型中并返回success页面,否则返回error页面(可以根据实际需求修改逻辑)

网页名称:html如何使用ognl
文章出自:http://www.shufengxianlan.com/qtweb/news41/48191.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联