OGNL特殊符号的使用

---------------------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】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值