Struts21 OGNL 表达式 学习笔记.docx
《Struts21 OGNL 表达式 学习笔记.docx》由会员分享,可在线阅读,更多相关《Struts21 OGNL 表达式 学习笔记.docx(13页珍藏版)》请在冰豆网上搜索。
Struts21OGNL表达式学习笔记
1.<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2.<%@page import="com.rao.struts2.bean.Sex"%>
3.<%@ taglib prefix="s" uri="/struts-tags"%>
4.
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
5.
6.
7.
My JSP 'OGNL1.jsp' starting page 8.
9.
10.
11.
12.
13.
14.
--
15.
16. -->
17.
18.
19.
20.
21. <%
22. request.setAttribute("req", "request scope");
23. request.getSession().setAttribute("sess", "session scope");
24. request.getSession().getServletContext().setAttribute("app",
25. "aplication scope");
26. %>
27. 1.通过ognl表达式获取 属性范围中的值
28.
29. property value="#request.req" />
30.
31. property value="#session.sess" />
32.
33. property value="#application.app" />
34.
35.
36. 2.通过 #fafafa;">ognl表达式创建list 集合 ,并且遍历出集合中的值
37.
38. set name="list" value="{'eeeee','ddddd','ccccc','bbbbb','aaaaa'}">
set>
39. iterator value="#list" var="o">
40.
-- ${o }
-->
41. property />
42.
43.
iterator>
44.
45.
46. 3.通过ognl表达式创建Map 集合 ,并且遍历出集合中的值
47.
48. set name="map"
49. value="#{'1':
'eeeee','2':
'ddddd','3':
'ccccc','4':
'bbbbb','5':
'aaaaa'}">
set>
50. iterator value="#map" var="o">
51.
-- ${o.key }->${o.value }
-->
52.
-- property value="#o.key"/>->property value="#o.value"/>
-->
53. property value="key" />->property value="value" />
54.
55.
iterator>
56.
57.
58. 4.通过ognl表达式 进行逻辑判断
59.
60. if test="'aa' in {'aaa','bbb'}">
61. aa 在 集合{'aaa','bbb'}中;
62.
if>
63. else>
64. aa 不在 集合{'aaa','bbb'}中;
65.
else>
66.
67.
68.
69. if test="#request.req not in #list">
70. 不 在 集合list中;
71.
if>
72. else>
73. 在 集合list中;
74.
else>
75.
76.
77. 5.通过ognl表达式 的投影功能进行数据筛选
78.
79. set name="list1" value="{1,2,3,4,5}">
set>
80. iterator value="#list1.{?
#this>2}" var="o">
81.
-- #list.{?
#this>2}:
在list1集合迭代的时候,从中筛选出当前迭代对象>2的集合进行显示 -->
82. ${o }
83.
iterator>
84.
85.
86. 5.通过ognl表达式 访问某个类的静态方法和值
87.
88. property value="@java.lang.Math@floor(32.56)" />
89.
90. property value="@com.rao.struts2.action.OGNL1Action@aa" />
91.
92.
93.
94. 6.ognl表达式 迭代标签 详细
95.
96. set name="list2"
97. value="{'aa','bb','cc','dd','ee','ff','gg','hh','ii','jj'}">
set>
98.
99.
100.
101. 索引 102. | 103.
104. 值 105. | 106.
107. 奇? 108. | 109.
110. 偶? 111. | 112.
113. 首? 114. | 115.
116. 尾? 117. | 118.
119. 当前迭代数量 120. | 121.
122. iterator value="#list2" var="o" status="s">
123.
if test="#s.even">pink
if>">
124.
125. property value="#s.getIndex()" /> 126. | 127.
128. property /> 129. | 130.
131. if test="#s.odd">Y if> 132. else>N else> 133. | 134.
135. if test="#s.even">Y if> 136. else>N else> 137. | 138.
139. if test="#s.first">Y if> 140. else>N else> 141. | 142.
143. if test="#s.isLast()">Y if> 144. else>N else> 145. | 146.
147. property value="#s.getCount()"/> 148. | 149.
150.
151.
iterator>
152.
153.
154.
155. 7.ognl表达式:
if/else if/else 详细
156. <% request.setAttribute("aa",0); %>
157. if test="#request.aa>=0 && #request.aa<=4">
158. 在0-4之间;
159.
if>
160. elseif test="#request.aa>=4 && #request.aa<=8">
161. 在4-8之间;
162.
elseif>
163. else>
164. 大于8;
165.
else>
166.
167.
168. 8.ognl表达式:
url 详细
169. <% request.setAttribute("aa","sss"); %>
170. url action="testAction" namespace="/aa/bb">
171. param name="aa" value="#request.aa">
param>
172. param name="id">100
param>
173.
url>
174.
175. set name="myurl" value="''">
set>
176. value以字符处理:
url value="#myurl">
url>
177. value明确指定以ognl表达式处理:
url value="%{#myurl}">
url>
178.
179.
180. 9.ognl表达式:
checkboxlist 详细
181. 1> .list 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
182. name:
checkboxlist的名字
183. list:
checkboxlist要显示的列表
184. value:
checkboxlist默认被选中的选项,checked=checked
185. checkboxlist name="checkbox1" list="{'上网','看书','爬山','游泳','唱歌'}" value="{'上网','看书'}" >
checkboxlist>
186.
187. 以上生成代码:
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198. "
199.
200. 2> .Map 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201. name:
checkboxlist的名字
202. list:
checkboxlist要显示的列表
203. listKey:
checkbox 的value的值
204. listValue:
checkbox 的lablel(显示的值)
205. value:
checkboxlist默认被选中的选项,checked=checked
206. checkboxlist name="checkbox2" list="#{1:
'上网',2:
'看书',3:
'爬山',4:
'游泳',5:
'唱歌'}" listKey="key" listValue="value" value="{1,2,5}" >
checkboxlist>
207.
208. 以上生成代码:
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222. 10.ognl表达式:
s:
radio 详细
223. <%
224. Sex sex1 = new Sex(1,"男");
225. Sex sex2 = new Sex(2,"女");
226. List list = new ArrayList<