新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
html如何使用ognl
OGNL(ObjectGraph Navigation Language)是一種強(qiáng)大的表達(dá)式語言,用于在Java應(yīng)用程序中操作對象圖,HTML本身不支持OGNL,但可以通過Java Web框架(如Struts2、Spring MVC等)在后端使用OGNL,以下是如何在Struts2中使用OGNL的詳細(xì)步驟:

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比尖山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式尖山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋尖山地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
1、添加Struts2依賴
在項(xiàng)目的pom.xml文件中添加Struts2依賴:
org.apache.struts struts2core 2.5.28
2、創(chuàng)建一個簡單的Java類
創(chuàng)建一個名為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、創(chuàng)建一個簡單的Action類
創(chuàng)建一個名為PersonAction的Java類,繼承ActionSupport,并實(shí)現(xiàn)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設(shè)置Person對象的屬性值
OgnlContext context = new OgnlContext();
context.setMemberAccess(new EnhMethodPropertyAccessor()); // 支持setter方法訪問屬性值
PropertyAccessor accessor = new JavaBeanAccessHelper(); // 提供對JavaBean的支持
context.setRoot(person); // 設(shè)置根對象為Person對象
context.setPropertyAccessor(accessor); // 設(shè)置屬性訪問器為JavaBeanAccessHelper實(shí)例
OgnlRuntime ognlRuntime = new OgnlRuntime(); // 創(chuàng)建OGNL運(yùn)行時實(shí)例
Object result = ognlRuntime.parseExpression("name=='張三' && age > 18").getValue(context, context); // 使用OGNL表達(dá)式設(shè)置條件判斷屬性值是否滿足要求,如果滿足則返回true,否則返回false或null(默認(rèn)為false)
if (result != null && result instanceof Boolean && (Boolean) result) { // 如果OGNL表達(dá)式返回值為true,則表示屬性值滿足要求,將Person對象添加到模型中并返回success頁面,否則返回error頁面(可以根據(jù)實(shí)際需求修改邏輯)
新聞名稱:html如何使用ognl
新聞來源:http://www.5511xx.com/article/ccsdghh.html


咨詢
建站咨詢
