http://struts.apache.org/2.x/docs/why-wont-the-if-tag-evaluate-a-one-char-string.html
If care is not taken with the quoting of literals, the expression language (OGNL) will misinterpret a char as a String.
<s:if test="aStringProperty == 'A'">
Why doesn't this work when myString is equal to A?
</s:if>
The solution is simple: flip the double and single quotes.
<s:if test='aStringProperty == "A"'>
This works!
</s:if>
Another solution is to escape the double quotes in the String.
<s:if test="aStringProperty == \"A\"">
This works too!
</s:if>
分享到:
相关推荐
### Struts2中`s:if`标签用于判断String类型的对象属性值和单字符是否相等的问题解析 在Struts2框架中,`<s:if>`标签被广泛应用于页面上根据不同的条件显示或隐藏某些元素。它的工作原理是基于表达式的结果来决定...
在这个例子中,我们首先使用 `<s:set>` 标签将一个字符串 `"China"` 设置到了一个名为 `country` 的变量中,然后使用 `<s:if>` 标签进行条件判断。如果 `country` 的值等于 `"China"`,则会显示 `"This is China!"`...
这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查。 首先,我们来看Struts2的核心概念。Struts2作为MVC框架,它负责处理HTTP...
本压缩包包含的源代码例子旨在帮助理解Struts 2的工作原理和使用方式,特别是Struts 2的标签库。 首先,我们来了解一下Struts 2的核心概念: 1. **Action类**:是业务逻辑的载体,通常继承自`org.struts.action....
在这个示例中,`<s:generator>`标签将字符串`'aaa,bbb,ccc,ddd,eee'`转换为一个迭代器,其中`count`属性限制了迭代器只包含前三个元素。随后,`<s:iterator>`标签用于遍历生成的迭代器并输出每个元素。 #### 结论 ...
- `s:if` 和 `s:else`:条件判断,类似于Java的if...else语句。 - `s:foreach`:循环遍历集合,类似Java的for-each循环。 - `s:switch`、`s:case`、`s:default`:实现多分支逻辑,类似Java的switch语句。 4. **...
- if标签用于基本的条件控制,如if-else语句的逻辑判断,可以配合else标签或elseif标签使用。 - iterator标签则用于遍历集合或数组,在页面上重复渲染一段HTML。 - append标签可以将多个iterator中的内容合并,这样...
- **分割标签**:`s:generator`可以将字符串按分隔符拆分成枚举列表。 - **合并标签**:`s:merge`按照指定顺序合并多个枚举值。 - **排序标签**:`s:sort`可以对列表进行排序,通过`comparator`属性指定自定义...
3. **Logic标签库**:包含了一系列用于逻辑控制的标签,如`<logic:if>`、`<logic:iterate>`等,它们用于根据条件展示内容或遍历集合。例如,`<logic:equal name="user" property="isAdmin" value="true">`可以用来...
在Struts2中,可以使用 `<s:set>` 标签来存储字符串,然后使用 `<s:if>` 标签来判断字符串的长度,如果长度超过一定的阈值,就截取前面的部分,否则显示全部字符串。 ```java <s:set name="str" value="list"></s:...
JSTL的核心标签库(core)包含了控制结构,例如`<c:forEach>`用于迭代,`<c:if>`和`<c:choose>`用于条件判断。JSTL的函数库(fn)则包含了一些常用的函数,比如字符串操作。使用JSTL,我们可以将业务逻辑从视图层...
例如,`<c:if>`用于条件判断,`<c:forEach>`用于迭代数组或集合,`<c:url>`生成安全的URL。JSTL还支持EL(Expression Language),使得在JSP页面中访问和操作JavaBean的属性变得更加简洁。 两者之间的比较,Struts...
根据给定的信息,本文将详细解释Struts2框架中的几个关键标签配置及其使用方法,包括条件判断、列表合并以及迭代生成等内容。 ### Struts2标签配置详解 #### 一、Struts2简介 Struts2是Apache基金会下的一款开源...
1. **If标签**:If标签用于实现条件判断,与Java中的if语句类似。通过`<s:if>`标签,可以基于指定的表达式决定是否执行其内部的内容。例如: ```jsp <s:if test="%{false}"> <div>Will Not Be Executed </s:if> ...
这些标签包括但不限于if标签、else标签、elseif标签、append标签以及generator标签等。 ##### 3.1 if标签 **描述**:`if`标签用于实现基本的条件判断逻辑,常与`else`或`elseif`标签配合使用。该标签通过一个布尔...
10. `s:if`和`s:else`: 用于条件判断,可以根据特定条件显示或隐藏内容。 11. `s:iterator`: 遍历集合,常用于表格或列表的展示。 12. `s:url`和`s:a`: 创建链接,`action`属性用于指定链接的目标Action,`param`...
generatot标签:将指定的字符串按照规定的分隔符分解成多个子字符串。 merge标签:将多个集合拼接在一起。 subset标签:获取某个集合的子集合。 sort标签:多指定的集合元素进行排序。 数据标签: action:直接...
这些标签用于条件判断,类似于 Struts 1.x 中的 `logic:present` 或 `logic:notPresent`。 **示例:** ```xml <s:if test="%{user != null}"> Welcome, </s:if> <s:elseif test="%{guest != null}"> Hello, ...
Struts2框架提供了丰富的标签库,包括控制流标签、数据展示标签等,这些标签在MVC模式中扮演着视图的角色,帮助我们构建动态、响应式的Web应用。 Struts2标签库主要分为以下几个部分: 1. **控制流标签**: - `s:...
- `s:if`和`s:else`用于条件判断,`s:iterator`用于遍历集合。 - **OGNL表达式**:Struts2的标签库广泛使用OGNL(Object-Graph Navigation Language)表达式来获取和设置对象的属性。 3. **Struts2 Jar包** - `...