`

ognl表达式标记符号的用法

阅读更多

“#”的用法

集合的投影(只输出部分属性)用法 collectionName.{expression}<br>

<s:iterator value="#request.personList.{name}">

       <s:property>

</s:iterator>

----------------------------------------------

 

用法2集合的过滤

 

"?#" 过滤所有符合条件的集合

"^#" 过滤第一个符合条件都元素

"$#" 过滤最后一个符合条件的元素

 

<s:iterator value="#request.personList.{?#this.age>25}" var="perspon">

 

       <s:property value="name">

       <s:property value="age">

</s:iterator>

 

personList里边放了许多个person

 

var关键字 在循环的时候把每一个Person对象放到map栈,this代表每一个person

 

所以用#this ,而?表示选择

---------------------------------------------

 

<s:iterator value="#request.personList.{?#this.age>25}.{name}" var="perspon">

 

       <s:property/>

      

</s:iterator>

"%"符号的用法

 

在标签的属性值被理解为字符串类型的时候,告诉执行环境

 

用法1.

%{}里的是ognl表达式

 

<s:textfield name="xxx" id="xxx" value="%{#request.username}"/>

 

备注:因给value引号里边的值 含有井号,解析不出来, 所以用%{} 括起来,告诉编译器,

 

{}里边内容的是ognl表达式。

 

用法2.

{}中的内容 加上'',解析成一个字符串

 

<s:textfield name="xxx" id="xxx" value="%{'#request.username'}"/>

------------------------------------------------------------------------------------------------------------

“$”符号的用法

Struts2配置文件中,使用ognl表达式

 -------------------------------------------

OgnlAction中,把"msgxxx_request"这个值放到request作用域里边。

 

ServletActionContext.getRequest().setAttribute("msgxxx","msgxxx_request");

 

下边是struts_ognl.xml文件

<package name="ognl" namespace="/ognl" extends="struts-default">

      

       <action name="ognlAction_*" class="cn.itcast.j_ognl.OgnlAction"

 

method="{1}">

 

              <result name="success">/ognl/ognl.jsp?msg=${#request.msgxxx}</result>

       </action>

</package>

-----------------------------------

当跳转到ognl.jsp的时候,要想要获取 "msgxxx_request"这个值,可以通过request得到,

 

对应的键是"msgxxx"<s:property value=”#request.msgxxx”>

------------------------------------

我也可以通过msg得到这个值

 

<result name="success">/ognl/ognl.jsp?msg=${#request.msgxxx}</result>

 

在配置文件中,先从request作用域中得到这个值,然后在使用msg作为参数名,使用参数传递这个值。可以看出 参数和参数值是放到parameters里边了

 

就可以这样得到值 <s:property value=”#parameters.msg”>

 

这个用法,可以解决重定向的问题,这个重定向到一个Action中,request作用域失效,可以在struts.xml文件中再传递一次request.

 

 

 

分享到:
评论

相关推荐

    OGNL表达式

    - **#**:通常用于表示OGNL表达式,在Struts2中作为OGNL表达式的开头标记。 - **%**:用于指定JSP页面的编码格式,如`;charset=utf-8" pageEncoding="utf-8" %&gt;`。 - **$**:在JSP页面中表示EL表达式的开头,但在...

    struts2 ognl表达式

    OGNL表达式通常由两部分组成:对象路径和方法调用。对象路径用于定位对象,方法调用用于访问或修改对象的方法。例如,`#session.user.name`表示从session中获取名为"user"的对象,然后访问其"name"属性。这里的`#`...

    OGNL表达式中的#、%和$.txt

    “$”符号在Struts2中主要用作OGNL表达式的起始标记,在模板文件(如JSP页面)中,它用于指示Struts2框架应该解析为OGNL表达式。 1. **模板文件中的应用**: - 示例:`reg.ageRange = $ {min} 到 $ {max}` - 解释...

    OGNL使用小结

    `%`符号主要用于当属性值为字符串类型时计算OGNL表达式,例如在`s:url`标签中,`%{#foobar['foo1']}`会计算并返回`foobar`对象中`foo1`属性的值。 `$`符号在OGNL中有两个关键应用。一是国际化资源文件中引用OGNL...

    【温故而知新】一个极好极全极简明的EL表达式的学习文档

    `#`在STRUTS2中通常用于引用ActionContext,`$`用于引用OGNL表达式,而`%`则可能在某些自定义标签或上下文中使用,比如在计算百分比时。例如,`&lt;s:property value="#session.user.name" /&gt;`会显示会话中`user`对象的...

    struts2 标签 OGNL

    Struts2是一个流行的Java web框架,它利用OGNL(Object-Graph Navigation Language)作为其核心表达式语言。OGNL是一种强大的表达式语言,允许开发者在Java对象之间导航和操作数据。在Struts2中,OGNL被广泛用于访问...

    JSTL、EL、ONGL、Struts标签的区别

    - **用法**: OGNL 通常与 Struts2 标签一起使用,不能单独在 Struts 页面中使用;而 EL 可以直接在 JSP 页面中使用。 - **取值**: OGNL 更适合于复杂的对象图导航,而 EL 更适用于简单的数据访问。 **与 JSTL 的...

    struts2综合复习习题

    注意,`value`属性内的值必须是有效的OGNL表达式。 #### 四、标签的作用是() **答案解析:** - 正确答案为 **B.将指定的Date对象按一定的字符串格式输出**。 - `&lt;s:date&gt;`标签用于格式化日期对象。它可以接受一...

    thymeleaf_3.0.5_中文参考手册.pdf

    1.3 Thymeleaf标准方言:Thymeleaf的标准方言遵循OGNL(Object-Graph Navigation Language)标准,该标准提供了一种表达方式,用于访问对象的属性和方法。 2. 示例项目:Good Thymes Virtual Grocery 2.1 一个杂货...

    freemarker总结

    上面的代码中的逻辑表达式用括号括起来主要是因为里面有&gt;符号,由于FreeMarker会将&gt;符号当成标签的结束字符,可能导致程序出错,为了避免这种情况,我们应该在凡是出现这些符号的地方都使用括号. Pythons are ...

    ssh+velocity+annotation包源

    - **模板语法**:Velocity使用#和$符号进行指令和变量引用,例如#{if}条件判断,${variable}变量输出。 - **Velocity上下文(Context)**:存储并传递数据到模板,是连接业务逻辑和视图的关键。 - **宏库(Macro ...

    Tapestry用户手册

    - OGNL是一种强大的表达式语言,用于在组件中访问和设置Java对象的属性。 - **1.5 Tapestry的过去与未来** - Tapestry的发展历程及未来的方向。 #### 2. 页面和组件模板 - **2.1 模板定位** - 定义了组件或页面...

Global site tag (gtag.js) - Google Analytics