OGNL特殊符号的使用

来源:互联网 发布:安卓java编辑器汉化版 编辑:程序博客网 时间:2024/04/29 17:31

---------------------siwuxie095

  

  

  

  

  

  

  

# 的使用

  

  

1、使用# 获取context 中的数据

  

「值栈分为root 和 context 两部分」

  

  

  

2、如:向Request 域放值,在页面中使用 OGNL 表达式获取值

  

1)编写Action

  

  

  

@Override

public String execute()throws Exception {

 

HttpServletRequest request=ServletActionContext.getRequest();

 

request.setAttribute("reqName","reqValue");

 

return SUCCESS;

}

  

  

  

2)编写页面

  

  

  

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

 

<!--引入 Struts2标签库 -->

<%@ taglib uri="/struts-tags" prefix="s"%>

  

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>OGNL</title>

</head>

<body>

  

<!--

因为是获取 context 中的数据,所以写 OGNL表达式时

要先添加特殊符号 #,再添加 context中的 Key名称,

最后添加放到域对象中的数据的名称

 

#request.reqName

 

注意:context Map结构,即 Key-Value

-->

<s:propertyvalue="#request.reqName"></s:property>

 

</body>

</html>

  

  

  

  

  

  

  

% 的使用

  

  

1、不能直接在Struts2 的表单标签中写 OGNL 表达式,会识别

不出来,只有加上%后才能识别

  

  

2、如:向Request 域放值,在页面中使用 OGNL 表达式获取值

  

1)编写Action(同上)

  

  

2)编写页面

  

  

  

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

 

<!--引入 Struts2标签库 -->

<%@ taglib uri="/struts-tags" prefix="s"%>

  

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>OGNL</title>

</head>

<body>

 

<!-- %强制解析 OGNL表达式 -->

<s:textfieldname="username"value="%{#request.reqName}"></s:textfield>

 

<!-- %强制不解析 OGNL表达式 -->

<s:textfieldname="username"value="%{'#request.reqName'}"></s:textfield>

 

</body>

</html>

  

  

  

  

  

  

  

  

【made by siwuxie095】