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,问题搞定!希望碰到此类问题的朋友能有所启发,不要再在这个问题上浪费太多的时间了。
分享到:
相关推荐
struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用
taskInstanceId=<s:property value="id"/>" >我来处理)</s:if> <s:elseif test='{#taskName == "受评对象准备评级资料"}'> ${pageContext.request.contextPath}/ga/needModify.action?taskInstanceId=<s:...
<s:if> 在进行字符创和字符比较时,会忽略一些细节,对于对该控件不是经常使用的,需要注意与字符和字符串的比较的区别
Struts2中关于s:tree标签的使用,详细的例子说明,带图片演示
Struts2 Design and Programming: A Tutorial.pdf 是一本介绍Struts2的设计和编程思想的书,也可以作为一本手册来使用
一个struts2的用户管理实例,涉及增删改查。 主要用到的技术: 1.struts2 2.国际化 3.类型转换 4.struts标签
针对Struts1的网页版的Struts Design and Programming A Tutorial
1. <s:if test=""></s:if> 2. <s:elseif test=""></s:elseif> 3. <s:else></s:else>-----这3个标签一起使用,表示条件判断 F: 1. <s:fielderror></s:fielderror>-----显示文件错误信息 2. <s:file></s:...
(3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7) <s:textfield>、<s:password>、<s:checkbox>、<s:textarea> (8) <s:select>、<s:radio>、<s:checkboxlist>
NULL 博文链接:https://shupili141005.iteye.com/blog/667446
Struts2讲义-作者:吴峻申
Struts2第一篇:流程篇
Struts 2 技术详解:基于WebWork核心的MVC开发与实践
Struts2_04ActionResultType : Struts2关于Action跳转类型的应用 对各种不同的跳转类型使用的实例 Struts2_05Interceptor : Struts2拦截器的使用 Struts2_06FileUpload : Struts2上传文件的使用
Struts2 Spring2.5集成:系统登陆demo--带lib可直接运行
Struts2漏洞检查工具2019版 警告: 本工具为漏洞自查工具,请勿非法攻击他人网站! ==漏洞编号==============影响版本=========================官方公告==========================================影响范围====...
struts2环境搭建+struts2 新闻发布系统+struts2 留言板 struts2环境搭建:基础框架搭建,简单易上手,适合新手,比你看书强多了,实践源于理论而高于理论,贵在实践 朋友。 struts2 新闻发布系统:struts2+jsp 功能不...
在action里面写了方法获取一个list,再将这个list的值放到jsp页面中显示出来,用的是<s:iterator>标签。
详细理解一下Struts2的参数,有助于对Struts2更深的体会!