`

OGNL备忘<s:property /> 1

阅读更多
/**
1。、/index.jsp?username=aaa  然后再Action中有一个属性叫username,get set方法,而且Action中的属性都在值栈中

2。/index.jsp?user.age=8   想初始化Domain Model ,可以自己new,也可以传参数值让strutsnew如:user.age,但是如果要struts 来 new,那么他会去调用Domain Model的空构造方法,所以我们必须保证Domain Model有空构造方法,如User有空构造方法。。。  

3.同2

4。对链接没要求,因为password这个String对象一定会被new 出来    这里password是一个String对象,可以这样直接调用它的方法

5。同4

6。对链接没要求, 因为值栈对象已经new 出来了,那么可以调用值栈中对象的方法

7。 对链接没要求, 因为是静态的东西,当然有了。。。但是要在struts.xml中设置一个常量 <constant name="struts.ognl.allowStaticMethodAccess" value="true" ></constant>

8. 对链接没要求, 同7

9. 对链接没要求,只能访问Math类 ,用得也不多

10。对链接没要求,允许你new 一个对象

11。返回像 {爱爱 ,dd ,sadfsa}这样的东西
12。返回 dd (如果List中的值是上面的话)
13。List中每个元素的age集合都被访问
14。顾名思义
15。与List一样

16。因为Set中是没有顺序的,所以取Set当然取不到,dogs[1]这样的概念不存在

17。同15
18。dogMap.dog101中dogMap是一个Map   dog101是一个key,通过这样可以取到value

19-20-21  不多说了

22。users.{?#this.age==1}这里users 是一个集合,这意思是拿到user.age=1的那些对象集合,打印出来是 [user1]即使只有一项,  users.{?#this.age==1}[0]将打印出来user1,注意[]不见了,呵呵?代表有无

23。users.{^#this.age>1}打印age>1的开头那个元素。。。。^表开头
users.{$#this.age>1}.{age}代表打印age>1的开头那个元素的age属性值集合
24。同23只不过是结尾的那个

25。就是判断集合里面有没有元素,返回false或 true

26.="[0]是访问值栈中的第一个对象到最后那个对象的集合,[0].name会对这些对象访问,然后找到他们是不是有name属性,有就把值打印出来


*/
<ol>
		<li>1。访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
		<li>2. 访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
		<li>3。访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/></li>
		<li>4。访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
		<li>5. 访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
		<li>6. 访问值栈中action的普通方法:<s:property value="m()" /></li>
		<hr />
		<li>7. 访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>
		<li>8. 访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>
		<li>9. 访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>
		<hr />
		<li>10. 访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>
		<hr />
		<li>11. 访问List:<s:property value="users"/></li>
		<li>12. 访问List中某个元素:<s:property value="users[1]"/></li>
		<li>13. 访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
		<li>14. 访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
		<li>15.访问Set:<s:property value="dogs"/></li>
		<li>16.访问Set中某个元素:<s:property value="dogs[1]"/></li>
		<li>17.访问Map:<s:property value="dogMap"/></li>
		<li>18.访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
		<li>19.访问Map中所有的key:<s:property value="dogMap.keys"/></li>
		<li>20.访问Map中所有的value:<s:property value="dogMap.values"/></li>
		<li>21.访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
		<hr />
		<li>22.投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
		<li>23.投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
		<li>24.投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
		<li>25.投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
		<hr />
		<li>26.[]:<s:property value="[0].username"/></li>
		
	</ol>
分享到:
评论

相关推荐

    struts2 标签使用

    `&lt;s:if&gt;` 标签依赖于 Struts2 提供的强大表达式语言——OGNL(Object-Graph Navigation Language),该语言可以方便地访问 JavaBean 对象属性。 #### OGNL 表达式与 ValueStack OGNL 是一种强大的表达式语言,它...

    struts2 OGNL之&lt;s:property&gt;标签访问值栈(value stack)用法

    在这个主题中,我们将深入探讨OGNL(Object-Graph Navigation Language)以及如何通过`&lt;s:property&gt;`标签来访问Struts2中的值栈(Value Stack)。值栈是Struts2中一个核心的概念,它是一个存储用户请求数据和应用...

    Struts2中使用标签实现组合查询和带分页的例子

    在Struts2框架中,`&lt;sx:&gt;`标签是Struts2 XWork库的一部分,用于增强JSP页面的功能,提供更强大的数据绑定和表单处理能力。本篇将重点讲解如何利用`sx:`标签实现组合查询和带分页功能。 首先,让我们了解下Struts2的...

    Strust2的if-else <tr></tr>用法

    &lt;td&gt;&lt;s:property value="name" /&gt;&lt;/td&gt; &lt;td&gt;&lt;s:property value="age" /&gt;&lt;/td&gt; &lt;!-- 其他列 --&gt; &lt;/tr&gt; &lt;/s:if&gt; &lt;s:else&gt; &lt;!-- 如果不满足条件,可以在这里放置其他内容或者不放任何内容 --&gt; &lt;/s:else&gt; &lt;/s:...

    struts2 OGNL表达式使用

    1. 访问值栈中action的普通属性:&lt;s:property value="username"/&gt; 2. 访问值栈中对象的普通属性:&lt;s:property value="student.age"/&gt; 3. 访问值栈中对象(对象包含对象)的普通属性:&lt;s:property value="cat.friend....

    很全面的struts2_ognl总结

    &lt;s:property value="@com.bjsxt.struts2.ognl.S@s()"/&gt; 这将调用 com.bjsxt.struts2.ognl.S 类的静态方法 s()。 四、访问 ValueStack 中的 List OGNL 也可以访问 ValueStack 中的 List,例如: &lt;s:property ...

    OGNL表达归纳

    &lt;s:property value="%{#valueStack.someProperty}" /&gt; ``` 这里,`%{}`是Struts 2提供的特殊语法,用于表示OGNL表达式。`#valueStack`即为当前的值栈对象,`someProperty`是该对象的一个属性。 之所以能这样访问,...

    struts2中siterator 标签的使用详解 及 OGNL用法.docx

    &lt;s:if test="#st.isEven()"&gt;现在的索引是偶数为:&lt;s:property value='#st.index'/&gt;&lt;/s:if&gt; 当前元素值:&lt;s:property value='char'/&gt; &lt;/s:iterator&gt; ``` 4. **遍历 Map** `value` 可以直接设置为一个 JSON 样式...

    IDEA中使用Struct2 + OGNL实现简单的注册功能

    &lt;li&gt;&lt;s:property value="key" /&gt;: &lt;s:property value="value[0]" /&gt;&lt;/li&gt; &lt;/s:iterator&gt; &lt;/ul&gt; &lt;/s:if&gt; &lt;/body&gt; &lt;/html&gt; ``` 在这个例子中,`s:textfield`标签通过OGNL自动将表单字段与`RegistrationAction`中...

    property用法.txt

    &lt;s:property value="listName.{^#this.age&gt;1}"/&gt; ``` - 筛选出年龄等于1的对象,并获取其年龄值: ```xml &lt;s:property value="listName.{$#this.age==1}.{age}==null"/&gt; ``` 以上是`&lt;s:property&gt;`标签及其OGNL...

    struts2_ognl基本用法.doc

    &lt;s:property value="users.{$#this.age&gt;1}.{age}==null"/&gt; ``` #### 六、其他用法 **1. 使用索引访问** ```html &lt;s:property value="[0].username"/&gt; ``` 这里展示了一个特殊用法,即通过索引直接访问属性...

    struts2中siterator 标签的使用详解 及 OGNL用法.pdf

    现在的索引是偶数为:&lt;s:property value="#st.index"/&gt; &lt;/s:if&gt; 当前元素值:&lt;s:property value='char'/&gt; &lt;/s:iterator&gt; ``` 3. **遍历Map** - `s:iterator`可以直接迭代Map对象,其中`value`属性可以是键值对...

    ognl教程代码

    &lt;s:property value="key"/&gt;-&gt;&lt;s:property value="value"/&gt; &lt;br/&gt; &lt;/s:iterator&gt; ``` ### 4. 使用 OGNL 进行条件判断 OGNL 支持进行条件判断。例如,可以使用 `&lt;s:if&gt;` 标签来判断某个值是否包含在另一个集合中,...

    struts2学习笔记

    - 找到age大于1的元素:`&lt;s:property value="listName.{^#this.age&gt;1}"/&gt;` - 选择特定条件的元素:`&lt;s:property value="listName.{$#this.age==1}.{age}==null"/&gt;` 11. **索引访问**: 使用方括号`[]`可以访问...

    struts2的s标签

    &lt;p&gt;名称:&lt;s:property value="name"/&gt;&lt;/p&gt; &lt;/s:iterator&gt; ``` - **说明**:遍历一个集合或数组,并对每个元素执行标签体内的内容。 25. **`&lt;s:label&gt;`** - 显示标签。 - **示例**: ```jsp &lt;s:label value=...

    如何自定义Struts2表单验证后的错误信息显示格式/样式_第二话

    Display Error Info in errors (一般不会使用到[1], 这里仅是测试):&lt;s:textfield/&gt; &lt;font color="red"&gt;&lt;s:property value="errors.displayErrorInfo[1]"/&gt;&lt;/font&gt;&lt;br&gt; &lt;hr&gt; 3.1. Display Error Info in ...

    struts2标签介绍

    1. `&lt;s:bean&gt;` - 类似于Struts1中的JavaBean操作,但在Struts2中使用较少,因为Struts2更倾向于使用OGNL表达式来访问对象。 **C组标签:** 1. `&lt;s:checkbox&gt;` - 创建复选框,可以绑定到Action的属性。 2. `&lt;s:...

    ognl标签的使用案例

    除了属性访问,OGNL还支持动态方法调用,如`&lt;s:property value="%{user.getName()}" /&gt;`。这允许我们在不改变视图层代码的情况下添加新的方法。 **6. 输入流处理与`inputStream`标签** 在Struts2中,`inputStream`...

    struts学习笔记(4)

    &lt;s:property value="1&gt;2 && 2&lt;3" /&gt; ``` #### 三、Struts2 标签详解 Struts2 提供了一套丰富的标签库,可以帮助开发者更高效地开发 Web 应用。 1. **引入 Struts2 标签库**: - 在 JSP 页面中使用 `&lt;%@ taglib...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_5_标签 共113页.pptx

    1. **`&lt;s:property&gt;`**:用于输出值栈中的值。 2. **`&lt;s:i18n&gt;`**:支持国际化。 3. **`&lt;s:iterator&gt;`**:用于迭代集合或数组。 4. **`&lt;s:if&gt;`**:条件判断标签。 5. **`&lt;s:else&gt;`**:与`&lt;s:if&gt;`配合使用表示条件不...

Global site tag (gtag.js) - Google Analytics