Struts2 $,#,% 详解及实例代码
引言
在处理 Struts2 代码时,经常可以看到一些用于处理 EL 表达式和字符串的字符,例如 $
、#
、%
等。这些字符在 Struts2 的开发中可以起到非常关键的作用。本文将介绍以下几个知识点:
- 关于
$
、#
、%
三个字符的作用以及使用场景 $
和#
在 Struts2 中的区别$
和#
的示例代码%
的示例代码
$
和 #
字符的作用及使用场景
$
和 #
在 Struts2 中均用于字符串的处理和 EL 表达式的解析,但是两者有着很大的区别。
$
字符:
$
字符用于字符串的处理,可以直接将字符串值输出到页面上。利用 $
,我们可以实现页面上的一些简单逻辑,例如设置全局变量,以及动态生成 HTML 内容。
#
字符:
#
字符用于 EL 表达式中,可以将 EL 表达式的结果输出到页面上。
下面我们将针对不同场景中的使用对两个字符进行详细地介绍。
$
和 #
字符在 Struts2 中的区别
在 Struts2 的页面中,通过 #
字符可以调用 Action 中的变量或方法,例如:
<s:property value="#user.name"/>
<s:date name="now" format="yyyy-MM-dd"/>
<s:bean name="userService" var="userService"/>
<s:iterator value="#userService.users" var="u">
<s:property value="u.name"/>
</s:iterator>
上述代码中,使用了 #
字符调用了 Action 中的变量和方法,并将其输出到了页面上。
相比之下,$
字符的作用更多用于处理纯字符串,例如:
<s:set var="userName" value="hello"/>
<s:if test="#user.name == ${userName}">Hello ${userName}</s:if>
上述代码中,我们使用了 $
字符创建了一个字符串变量 userName
,将其用于判断条件中。但是需要注意的一点是,如果在 Struts2 的配置文件 struts.xml
中启用了 struts.enable.SlashesInActionNames
属性,则 $
在处理字符串时还可以用于表示 Action 目录的层级。
$
和 #
在 Struts2 中的使用场景
根据上述介绍,我们可以总结两者的使用场景:
$
字符的使用场景
$
字符的使用场景主要包括:
-
字符串处理
-
动态生成 HTML 内容
-
#
字符的使用场景
#
字符的使用场景主要包括:
-
调用 Action 中的变量和方法
-
调用 OGNL 表达式
-
调用 Struts2 的标签库
$
和 #
字符的示例代码
$
的示例代码
<!-- 字符串处理示例 -->
<s:set var="msg" value="hello"/>
<s:property value="${msg} world!"/>
<!-- 动态生成 HTML 内容示例 -->
<s:set var="names" value="John,Lucy,Tom"/>
<s:iterator value="${fn:split(names,',')}" var="name">
<s:property value="'<li>'+name+'</li>'"/>
</s:iterator>
上述代码中,我们通过 $
字符实现了字符串的处理和动态生成 HTML 内容。
#
的示例代码
<!-- 调用 Action 中的变量和方法 -->
<s:property value="user.name"/>
<s:property value="userService.getUserName()"/>
<!-- 调用 OGNL 表达式 -->
<s:set var="n" value="1"/>
<s:set var="a" value="#{1+2*3+(4>1?1:2)}"/>
<s:property value="%{n+a}"/>
<!-- 调用 Struts2 的标签库 -->
<s:bean name="userService" var="userService"/>
<s:iterator value="#userService.users" var="u">
<s:property value="%{u.name}"/>
</s:iterator>
上述代码中,我们通过 #
字符实现了调用 Action 中的变量和方法、调用 OGNL 表达式和调用 Struts2 的标签库。
%
字符的作用及使用场景
在 Struts2 中,%
字符主要用于格式化字符、时间等信息。
%
字符的使用场景
在 Struts2 中,%
字符可以用于格式化数字和时间等信息。例如:
<!-- 格式化数字 -->
<s:set var="price" value="1000"/>
<s:property value="%{#price','.##}"/>
<!-- 格式化时间 -->
<s:property value="%{#startTime.format('yyyy/MM/dd')}"/>
上述代码中,我们使用 %
字符对数字和时间进行了格式化输出。
结语
本文主要介绍了 Struts2 中 $
、#
和 %
三个字符的作用及使用场景,通过对上述内容的学习,相信各位读者在 Struts2 的开发过程中能够更加游刃有余。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2 $,#,%详解及实例代码 - Python技术站