`

(转) Struts2 URL参数 s:if 判断应用

阅读更多

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,问题搞定!希望碰到此类问题的朋友能有所启发,不要再在这个问题上浪费太多的时间了。

分享到:
评论
2 楼 Woo_Thyee 2012-03-06  
谢谢分享,解决了
1 楼 hankeronline 2011-11-25  
谢谢,我也郁闷了好久!

相关推荐

    Struts2实例 国际化 类型转换 struts标签

    5. `&lt;s:if&gt;`和`&lt;s:else&gt;`:条件判断,控制页面元素的显示。 在这个用户管理实例中,`UserManager`可能是Action类的名字,它包含了处理用户管理操作的逻辑。例如,`addUser`方法用于添加用户,`deleteUser`用于删除...

    struts2 标签库 帮助文档

    2. &lt;s:url&gt;&lt;/s:url&gt;-----创建url ___________________________________________________ struts2框架的标签库分为三类: 用户标签:生成HTML元素 非用户标签:数据访问、逻辑控制等。 AJAX标签:支持...

    struts2的s标签

    ### Struts2中的S标签详解 #### 一、概述 Struts2框架是Apache软件基金会下的一个开源项目,它提供了一种基于MVC(Model-View-Controller)设计模式的Web应用开发框架。Struts2提供了丰富的标签库,其中“S标签”...

    struts2-s标签

    ### Struts2 S 标签库详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 的标签库是其核心特性之一,为开发者提供了丰富的 ...

    struts2标签api

    1. **动作标签**:这些标签主要用于执行特定的Struts2动作,如`s:action`标签用于执行一个Struts2动作,`s:url`用于创建URL,`s:a`则用于创建链接。这些标签通常与Struts2的配置文件相结合,可以传递参数,实现动态...

    struts2标签大全

    16. **s:if标签**和**s:else标签**:条件判断,根据表达式的值决定是否渲染其内部的内容。 17. **s:choose标签**、**s:when标签**和**s:otherwise标签**:类似Java的switch语句,提供多分支选择。 18. **s:set标签...

    Struts2常用标签及说明

    ### Struts2常用标签及其应用详解 #### 一、引言 Struts2是一个基于MVC模式的开源Java Web框架,它提供了丰富的标签库来帮助开发者更高效地进行Web应用程序的开发。这些标签不仅简化了页面逻辑的编写,还提高了代码...

    struts2标签用法(详情见附件)

    - **s:if**和**s:else**:条件判断标签,用于控制逻辑流程。 2. **结果标签库**: - **s:actionerror**、**s:fielderror**和**s:globalerror**:显示Action级、字段级和全局错误信息。 - **s:include**:包含JSP...

    struts2常用标签详解

    - `&lt;s:if&gt;`和 `&lt;s:else&gt;`:条件判断,类似于Java中的if-else语句。 - `&lt;s:iterate&gt;`:遍历集合,类似于Java的for-each循环。 4. **Field标签**:这类标签主要处理表单字段,如错误处理和验证。例如: - `&lt;s:...

    struts2 UI标签

    Struts2 UI标签是Struts2框架中的一部分,主要用于简化Web应用中的视图层开发,提升开发效率。这些标签提供了一种声明式的方式来构建动态HTML页面,使得开发者无需直接编写繁琐的JSP代码,而是通过XML或者Java配置来...

    struts2常用标签说明

    - `&lt;a&gt;`与`&lt;s:url&gt;`结合:在超链接中传递多个参数,如`&lt;a href="&lt;s:url action='myAction'&gt;&lt;s:param name='param1' value='value1'/&gt;&lt;s:param name='param2' value='value2'/&gt;&lt;/s:url&gt;"&gt;链接&lt;/a&gt;`。 6. **范围设置...

    Struts2页面取值总结

    - **条件判断**: `&lt;s:if test="userName == 'admin'"&gt;...&lt;/s:if&gt;`和`&lt;s:else&gt;`用于基于action中的数据执行条件判断。 - **迭代遍历**: `&lt;s:iterator value="userList" ...&gt;`用于遍历集合如List或Map,配合`&lt;s:...

    Struts2页面开发中常用的标签介绍

    - `&lt;s:param&gt;`标签用于添加URL参数。 ##### 6. 超链接 **标签**: `&lt;a href&gt;` 结合 `&lt;s:url&gt;` - **示例**: ```html &lt;a href="&lt;s:url action="someAction"&gt; &lt;s:param name="param1" value="value1" /&gt; &lt;s:...

    Struts2标签详解及具体实例解析

    Struts2是一个基于MVC模式的开源框架,它提供了丰富的标签库来简化Web应用的开发过程。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态网页。本文将详细介绍Struts2中的常用标签及其用法,并通过...

    struts2 tag 使用实例

    - `&lt;s:if&gt;`和`s:else`:条件判断标签,根据表达式的值执行相应的代码块。 - `&lt;s:switch&gt;`、`&lt;s:case&gt;`和`s:default&gt;`:多分支判断标签,类似于Java中的switch语句。 - `&lt;s:iterator&gt;`:遍历集合,如数组、List或...

    struts2标签归纳详解

    这里`action`属性指定目标Action,而`&lt;s:param&gt;`则用于添加URL参数。 ##### 1.7 结合&lt;s:url&gt; 将`&lt;a href&gt;`与`s:url`标签结合使用,可以生成动态链接,如: ```html &lt;a href="&lt;s:url action=""&gt; &lt;s:param name="...

    Struts2 标签一

    - `s:if`:条件判断标签,类似于Java的if语句。 - `s:else` 和 `s:elseif`:与`s:if`配合使用,实现条件分支。 - `s:foreach`:循环遍历数组、集合或Map,常用于数据列表的渲染。 - `s:include`:用于包含其他...

    Struts标签库 Struts 标签库

    - **控制标签**:如`s:if`、`s:else`、`s:iterator`,用于条件判断和循环。 - **动作标签**:如`s:action`、`s:url`,用于执行Action并生成相应的URL。 - **表单标签**:如`s:textfield`、`s:checkbox`、`s:radio...

    struts2自学文档

    - **判断标签**:条件判断,如`&lt;s:if&gt;`、`&lt;s:else&gt;`等。 - **URL标签**:生成URL链接。 - **表单标签**:如`&lt;s:textfield&gt;`、`&lt;s:textarea&gt;`等,用于创建HTML表单元素。 - **Checkboxlist**:创建复选框列表。 - *...

    Struts标签集合简介

    Struts标签是Apache Struts框架提供的...以上就是Struts标签的基本介绍,它们极大地简化了Struts2应用的视图层开发,提高了代码的可读性和维护性。通过熟练运用这些标签,开发者可以更高效地构建功能丰富的Web应用。

Global site tag (gtag.js) - Google Analytics