Struts2的s:if标签很怪异,下面来具体地看看,如何用s:if标签来判断URL中的参数。
访问一个带有URL参数的页面,如:http://localhost:8080/a.jsp?name=xht555
# <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
# <%@ taglib prefix="s" uri="/struts-tags"%>
# <html>
# <head>
# <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
# <title>Struts2 url参数测试</title>
# </head>
# <body>
# <s:property value="#parameters.name"/><!-- 有值 -->
# <s:if test="#parameters.name=='xht555'">OK</s:if><!-- 无值 -->
# <s:if test="#parameters.name.equals('xht555')">OK</s:if><!-- 无值 -->
# </body>
# </html>
就上面一个简单的代码,却始终不能进入到IF判断语句中,郁闷了好久,甚至在骂Struts2,一个不智能的作品。
经过大量的查找资料,直到问题发生的第三天,我回过头来偶然又想起了这个问题,才在一个帮助文档中发现。原来Struts2是将URL传的参数封装成一个数组的,也就是说你可以在一个URL传两个同名的参数(即?name=a&name=b),个人觉得这个做的不怎么好,因为一般在传参的时候如果要传数组也不会通过URL方式来处理 。既然传递的是一个数值,那么所有的问题就迎刃而解了。
所以上面的取参数应该改为:
1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
2. <%@ taglib prefix="s" uri="/struts-tags"%>
3. <html>
4. <head>
5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6. <title>Struts2 url参数测试</title>
7. </head>
8. <body>
9. <s:property value="#parameters.name[0]"/><br /><!-- 有值 -->
10. <s:if test="#parameters.name[0]=='xht555'">OK</s:if><br /><!-- 有值 -->
11. <s:if test="#parameters.name[0].equals('xht555')">OK</s:if><!-- 有值 -->
12. </body>
13. </html>
OK,问题搞定!希望碰到此类问题的朋友能有所启发,不要再在这个问题上浪费太多的时间了。
分享到:
相关推荐
5. `<s:if>`和`<s:else>`:条件判断,控制页面元素的显示。 在这个用户管理实例中,`UserManager`可能是Action类的名字,它包含了处理用户管理操作的逻辑。例如,`addUser`方法用于添加用户,`deleteUser`用于删除...
2. <s:url></s:url>-----创建url ___________________________________________________ struts2框架的标签库分为三类: 用户标签:生成HTML元素 非用户标签:数据访问、逻辑控制等。 AJAX标签:支持...
### Struts2中的S标签详解 #### 一、概述 Struts2框架是Apache软件基金会下的一个开源项目,它提供了一种基于MVC(Model-View-Controller)设计模式的Web应用开发框架。Struts2提供了丰富的标签库,其中“S标签”...
### Struts2 S 标签库详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 的标签库是其核心特性之一,为开发者提供了丰富的 ...
1. **动作标签**:这些标签主要用于执行特定的Struts2动作,如`s:action`标签用于执行一个Struts2动作,`s:url`用于创建URL,`s:a`则用于创建链接。这些标签通常与Struts2的配置文件相结合,可以传递参数,实现动态...
16. **s:if标签**和**s:else标签**:条件判断,根据表达式的值决定是否渲染其内部的内容。 17. **s:choose标签**、**s:when标签**和**s:otherwise标签**:类似Java的switch语句,提供多分支选择。 18. **s:set标签...
### Struts2常用标签及其应用详解 #### 一、引言 Struts2是一个基于MVC模式的开源Java Web框架,它提供了丰富的标签库来帮助开发者更高效地进行Web应用程序的开发。这些标签不仅简化了页面逻辑的编写,还提高了代码...
- **s:if**和**s:else**:条件判断标签,用于控制逻辑流程。 2. **结果标签库**: - **s:actionerror**、**s:fielderror**和**s:globalerror**:显示Action级、字段级和全局错误信息。 - **s:include**:包含JSP...
- `<s:if>`和 `<s:else>`:条件判断,类似于Java中的if-else语句。 - `<s:iterate>`:遍历集合,类似于Java的for-each循环。 4. **Field标签**:这类标签主要处理表单字段,如错误处理和验证。例如: - `<s:...
Struts2 UI标签是Struts2框架中的一部分,主要用于简化Web应用中的视图层开发,提升开发效率。这些标签提供了一种声明式的方式来构建动态HTML页面,使得开发者无需直接编写繁琐的JSP代码,而是通过XML或者Java配置来...
- `<a>`与`<s:url>`结合:在超链接中传递多个参数,如`<a href="<s:url action='myAction'><s:param name='param1' value='value1'/><s:param name='param2' value='value2'/></s:url>">链接</a>`。 6. **范围设置...
- **条件判断**: `<s:if test="userName == 'admin'">...</s:if>`和`<s:else>`用于基于action中的数据执行条件判断。 - **迭代遍历**: `<s:iterator value="userList" ...>`用于遍历集合如List或Map,配合`<s:...
- `<s:param>`标签用于添加URL参数。 ##### 6. 超链接 **标签**: `<a href>` 结合 `<s:url>` - **示例**: ```html <a href="<s:url action="someAction"> <s:param name="param1" value="value1" /> <s:...
Struts2是一个基于MVC模式的开源框架,它提供了丰富的标签库来简化Web应用的开发过程。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态网页。本文将详细介绍Struts2中的常用标签及其用法,并通过...
- `<s:if>`和`s:else`:条件判断标签,根据表达式的值执行相应的代码块。 - `<s:switch>`、`<s:case>`和`s:default>`:多分支判断标签,类似于Java中的switch语句。 - `<s:iterator>`:遍历集合,如数组、List或...
这里`action`属性指定目标Action,而`<s:param>`则用于添加URL参数。 ##### 1.7 结合<s:url> 将`<a href>`与`s:url`标签结合使用,可以生成动态链接,如: ```html <a href="<s:url action=""> <s:param name="...
- `s:if`:条件判断标签,类似于Java的if语句。 - `s:else` 和 `s:elseif`:与`s:if`配合使用,实现条件分支。 - `s:foreach`:循环遍历数组、集合或Map,常用于数据列表的渲染。 - `s:include`:用于包含其他...
- **控制标签**:如`s:if`、`s:else`、`s:iterator`,用于条件判断和循环。 - **动作标签**:如`s:action`、`s:url`,用于执行Action并生成相应的URL。 - **表单标签**:如`s:textfield`、`s:checkbox`、`s:radio...
- **判断标签**:条件判断,如`<s:if>`、`<s:else>`等。 - **URL标签**:生成URL链接。 - **表单标签**:如`<s:textfield>`、`<s:textarea>`等,用于创建HTML表单元素。 - **Checkboxlist**:创建复选框列表。 - *...
Struts标签是Apache Struts框架提供的...以上就是Struts标签的基本介绍,它们极大地简化了Struts2应用的视图层开发,提高了代码的可读性和维护性。通过熟练运用这些标签,开发者可以更高效地构建功能丰富的Web应用。