OGNL中特殊字符 # $ %的用法和含义,案例+解析

OGNL中特殊字符的用法和含义
构建JSP页面引入Struts2的标签库
在这里插入图片描述

一、#

1、获取context当中的是数据

在这里插入图片描述
JSP页面
在这里插入图片描述

2、使用#来构建List集合

在JSP页面上写如下内容
在这里插入图片描述
在浏览器当中测试
在这里插入图片描述

3、使用 # 来构建Map集合

在JSP页面
在这里插入图片描述
浏览器当中测试
在这里插入图片描述

4、拓展(关于表单)

传统的选项是这样的
在这里插入图片描述
效果
在这里插入图片描述

通过OGNL表达式来 list集合

在这里插入图片描述
浏览器显示效果
在这里插入图片描述

通过OGNL表达式来 Map集合

在这里插入图片描述
在这里插入图片描述

二、%

1、强制解析OGNL

在文本框的value当中OGNL表达式无法直接使用,需要强制解析
在这里插入图片描述
在这里插入图片描述

2、强制不解析OGNL

在 s : property 的value当中正常OGNL表达式会被解析,可以通过以下方式将OGNL表示不解析。
在这里插入图片描述
在这里插入图片描述

三、$

1、在配置文件当中使用OGNL

(1)属性文件:

国际化地方使用:

不同的情况下读取不同的文件,显示不同的语言
在属性文件当中正常是无法使用OGNL,在OGNL表达式外面加上${}就可以正常ONGL表达式

读取对应的键获取其值

message_zh_CN.properties

user.login=登录
user.welcome=欢迎,${#session.user.username}

message_en_US.properties

user.login=Login
user.welcome=Welcome,${#session.user.username}
(2)XML文件:
文件下载

配置

<action name="download" class="xxx.DownloadAction">
	
	<result type="stream">
		<param name="Content-Type"> 文件类型(变量) </param>
		<param name="Content-Disposition">attachment;filename=${ 文件名(变量) }</param>
		
	</result>
	
</action>

可以从值栈当中获取对应变量的值

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/106871820