Struts2 $,#,%详解及实例代码

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 中的使用场景

根据上述介绍,我们可以总结两者的使用场景:

  • $ 字符的使用场景

$ 字符的使用场景主要包括:

  1. 字符串处理

  2. 动态生成 HTML 内容

  3. # 字符的使用场景

# 字符的使用场景主要包括:

  1. 调用 Action 中的变量和方法

  2. 调用 OGNL 表达式

  3. 调用 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技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JDBC操作数据库的增加、删除、更新、查找实例分析

    JDBC操作数据库的增加、删除、更新、查找实例分析 Java Database Connectivity (JDBC) 是Java语言中用于在Java应用程序中连接和操作关系型数据库的标准API。它提供了一组Java接口,允许Java应用程序与各种关系型数据库进行通信,包括MySQL、Oracle、PostgreSQL等。 JDBC连接数据库 在使用JDBC…

    Java 2023年6月16日
    00
  • JAVA之String中删除指定字符方式(11种方法)

    JAVA字符串中删除指定字符的11种方法 在JAVA编程中,经常需要处理字符串,其中常见的操作之一就是删除指定字符。下面将介绍11种常用的删除指定字符的方法。 方法1:使用replace方法替换指定字符 可以使用String类的replace方法,将要删除的字符替换成空字符串: public static String deleteChar(String s…

    Java 2023年5月27日
    00
  • 浅谈s:select 标签中list存放map对象的使用

    s:select 标签是 Struts2 框架中用于生成 HTML select 元素的标签,使用 s:select 标签可以方便地生成下拉框。当需要从后台传递一个 List 集合作为下拉框的选项时,可以使用 s:select 标签中的 list 属性,将 List 集合作为 s:select 标签对应的下拉框的选项。 然而,在某些场景下,我们需要将 Lis…

    Java 2023年6月15日
    00
  • java一个数据整理的方法代码实例

    针对“java一个数据整理的方法代码实例”的完整攻略,我将详细讲解以下几个方面: 1.目标 首先,我们需要明确准备实现什么样的数据整理方法。例如,一个实际需求是我们需要从一份数据集中,提取出某个字段所对应的数据,并对其进行统计分析。那么,我们的目标就是实现一个函数,接收这份数据集和指定的字段名,返回经过处理后的结果。 2.实现思路 在明确目标后,我们需要考虑…

    Java 2023年5月23日
    00
  • Java的Struts框架报错“ActionServletWrapperException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“ActionServletWrapperException”错误。这个错误通常由以下原因之一起: 配置错误:如果配置文件中没有正确配置,则可能会出现此错误。在这种情况下,需要检查文件以解决此问题。 类型转换错误:如果类型转换错误,则可能会出现此错误。在这种情况下,需要检查类型转换以解决此问题。 以下是两个实例:…

    Java 2023年5月5日
    00
  • Java中的字符编码问题处理心得总结

    Java中的字符编码问题处理心得总结 在Java编程中,字符编码问题是一个常见的挑战。如果没有正确地处理字符编码,会出现许多问题,例如乱码、字符截断、字符丢失等。为了避免这些问题,我们需要按照以下步骤进行处理。 第一步:了解字符编码和字符集 在处理字符编码问题之前,我们需要了解字符编码和字符集的概念。 字符编码是指将字符转换为二进制形式的过程。在计算机机内部…

    Java 2023年5月31日
    00
  • Java中synchronized正确使用方法解析

    Java中synchronized正确使用方法解析 什么是synchronized synchronized是一个对象级别的锁,也称之为内部锁或者特定对象的锁。Java中提供了三种使用synchronized关键字同步代码块的方法。 修饰实例方法,锁的是当前实例对象(this)。 修饰静态方法,锁的是类对象(Class对象)。 修饰代码块,锁的是代码块中的对…

    Java 2023年5月26日
    00
  • Java与Spring boot后端项目Bug超全总结

    Java与Spring Boot后端项目Bug超全总结 为什么会有Bug Bug是不可避免的,尤其是在软件开发的过程中。它们可能由多种原因引起,例如人为疏忽、缺少测试、设计错误或未能理解业务需求。在Java和Spring Boot后端项目中,由于开发过程通常比较复杂,可能出现更多的Bug。以下是一些解决这些问题的技术和策略。 解决Bug的技巧和策略 1. 编…

    Java 2023年6月16日
    00
合作推广
合作推广
分享本页
返回顶部