“#”的用法
集合的投影(只输出部分属性)用法 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表达式,在Struts2中作为OGNL表达式的开头标记。 - **%**:用于指定JSP页面的编码格式,如`;charset=utf-8" pageEncoding="utf-8" %>`。 - **$**:在JSP页面中表示EL表达式的开头,但在...
OGNL表达式通常由两部分组成:对象路径和方法调用。对象路径用于定位对象,方法调用用于访问或修改对象的方法。例如,`#session.user.name`表示从session中获取名为"user"的对象,然后访问其"name"属性。这里的`#`...
“$”符号在Struts2中主要用作OGNL表达式的起始标记,在模板文件(如JSP页面)中,它用于指示Struts2框架应该解析为OGNL表达式。 1. **模板文件中的应用**: - 示例:`reg.ageRange = $ {min} 到 $ {max}` - 解释...
`%`符号主要用于当属性值为字符串类型时计算OGNL表达式,例如在`s:url`标签中,`%{#foobar['foo1']}`会计算并返回`foobar`对象中`foo1`属性的值。 `$`符号在OGNL中有两个关键应用。一是国际化资源文件中引用OGNL...
`#`在STRUTS2中通常用于引用ActionContext,`$`用于引用OGNL表达式,而`%`则可能在某些自定义标签或上下文中使用,比如在计算百分比时。例如,`<s:property value="#session.user.name" />`会显示会话中`user`对象的...
Struts2是一个流行的Java web框架,它利用OGNL(Object-Graph Navigation Language)作为其核心表达式语言。OGNL是一种强大的表达式语言,允许开发者在Java对象之间导航和操作数据。在Struts2中,OGNL被广泛用于访问...
- **用法**: OGNL 通常与 Struts2 标签一起使用,不能单独在 Struts 页面中使用;而 EL 可以直接在 JSP 页面中使用。 - **取值**: OGNL 更适合于复杂的对象图导航,而 EL 更适用于简单的数据访问。 **与 JSTL 的...
注意,`value`属性内的值必须是有效的OGNL表达式。 #### 四、标签的作用是() **答案解析:** - 正确答案为 **B.将指定的Date对象按一定的字符串格式输出**。 - `<s:date>`标签用于格式化日期对象。它可以接受一...
1.3 Thymeleaf标准方言:Thymeleaf的标准方言遵循OGNL(Object-Graph Navigation Language)标准,该标准提供了一种表达方式,用于访问对象的属性和方法。 2. 示例项目:Good Thymes Virtual Grocery 2.1 一个杂货...
上面的代码中的逻辑表达式用括号括起来主要是因为里面有>符号,由于FreeMarker会将>符号当成标签的结束字符,可能导致程序出错,为了避免这种情况,我们应该在凡是出现这些符号的地方都使用括号. Pythons are ...
- **模板语法**:Velocity使用#和$符号进行指令和变量引用,例如#{if}条件判断,${variable}变量输出。 - **Velocity上下文(Context)**:存储并传递数据到模板,是连接业务逻辑和视图的关键。 - **宏库(Macro ...
- OGNL是一种强大的表达式语言,用于在组件中访问和设置Java对象的属性。 - **1.5 Tapestry的过去与未来** - Tapestry的发展历程及未来的方向。 #### 2. 页面和组件模板 - **2.1 模板定位** - 定义了组件或页面...