`

标签的使用

    博客分类:
  • java
UI 
阅读更多

Struts2的标签库中,有一个出场频度很高的逻辑标签---IF标签

<s:if>其实很简单, 就两个参数,常用的就一个"test"

参数如下:

名称 必需 默认 类型 描述
test 是 Boolean 决定标志里内容是否显示的表达式.else标志没有这个参数
id 否 Object/String 用来标识元素的id.在UI和表单中为HTML的id属性



但是, 要写一个合法test表达式,却是让我觉得很麻烦的事.( 经常写错)

test里面写的表达式经常要结合OGNL使用的, 例如:

<s:set name="name" value="<%= "'" + request.getParameter("name") + "'" %>" />
<s:if test="#name == 'Max'">
Max's file here
</s:if>
<s:elseif test="#name == 'Scott'">
Scott's file here
</s:elseif>
<s:else>
Other's file here
</s:else>

以上都是基本使用方式.

2.关于test表达式的flag右值

程序里经常有需要判断一个标志来控制页面元素的显示, 而这个传到页面的标志又是String型的"0"和"1", 表达式该怎么写?

<s:if test="#flag == '1">
display some info
</s:if>

你认为像上面这种写法OK吗? 自己试试吧.

正确的写法如下例:

<s:set name="pf" value="#attr.orderlist.paidflag" ></s:set>
<s:if test="#attr.orderlist.paidflag == \"1\"">
<span style="color: #CC0000;">
<STRONG><s:property value="%{'已付款'}" /></STRONG>
</span>
</s:if>
<s:else>
<span style="color: #00CC00;">
<STRONG><s:property value="%{'未付款'}" /></STRONG>
</span>
</s:else>

就是这种写法 \"1\" 使用转义字符, 当然这个例子的OGNL复杂了点,因为这段代码所处的环境的关系.但重点是这种写法!

引用1

If care is not taken with the quoting of literals, the expression language (OGNL) will misinterpret a char as a String.

===========================================
Wrong

<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.
Right

<s:if test='aStringProperty == "A"'>
This works!
</s:if>

Another solution is to escape the double quotes in the String.
Also Right

<s:if test="aStringProperty == \"A\"">
This works too!
</s:if>

引用2---一个兄弟的回帖

抱歉,经过再次分析,这不是struts2的bug。一个很容易错误应用的问题。
<s:if test="deptType==1" >下属 </s:if>如果你的数据库对应的字段类型为整形,可以这样使用;

<s:if test="deptType=='1'" >下属 </s:if>如果你的数据库对应的字段类型为char,可以这样使用;

<s:if test="deptType=='aa'" >下属 </s:if>如果你的数据库对应的字段类型为varchar,并且数据库中的字符串都是多余一个字符的字符串,可以这样使用;

<s:if test="deptType==\"1\"" >下属 </s:if> <s:else>直属 </s:else>(测试通过,这样用是最正确的)

3.test表达式中的OGNL

OGNL表达式中的#符号,该使用的时候,就一定不能省略,否则取不到值的. 除非你是取ValueStack中的东西可以不要.(取OGNL的Root里的东西本来就不用加#符号)

4.复杂逻辑的test表达式

不多说了, 给个例子就是了.

如果验证有错误的时候, 在页面显示出错误消息的例子:

<s:if test="fieldErrors!=null&&fieldErrors.size !=0">
<div id="ErrorArea" style="color: #CC0000; border: 1px solid #CC0000;">
<s:fielderror id="error"></s:fielderror></div>
</s:if>

分享到:
评论

相关推荐

    Struts2标签使用及API文档

    `struts2标签用法.doc`和`标签详解`文件可能包含更深入的标签用法和实例,例如如何使用`s:form`创建表单,如何利用`s:action`执行Action,以及如何使用`s:debug`标签进行调试等。 5. **Struts2标签的高级用法** -...

    struts2标签使用方法

    Struts2 标签使用方法 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展性。Struts2 允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂...

    HtmlMate标签使用详解中文WORD版

    资源名称:Html Mate 标签 使用详解 中文WORD版本文档主要讲述的是Html Mate 标签使用详解;meta是html语言head区的一个辅助性标签。meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同...

    C#调用CodeSoft打印标签 使用斑马打印机

    总的来说,C#调用CodeSoft并结合斑马打印机打印带有变量二维码的标签,需要掌握C#的进程间通信技术、CodeSoft的COM接口使用以及斑马打印机的配置。这是一个综合性的任务,涉及了编程、软件接口和硬件设备的协同工作...

    网页优化meta标签使用方法及规则中文WORD版

    资源名称:网页优化meta标签使用方法及规则 中文WORD版   本文档主要讲述的是网页优化meta标签使用方法及规则;meta是html语言head中的一个辅助标签,meta标签由http-equlv属性和name属性组成,属性不同...

    struts 1.2 标签使用说明

    以下是对Struts 1.2 标签使用的详细介绍: 1. **Bean标签库**: - **bean标签**:用于访问JavaBeans及其属性,或创建新的bean。 - **html标签**:生成与Struts框架交互的HTML输入表单,如`&lt;html:text&gt;`用于创建...

    JPivot标签使用详解 中文

    【JPivot标签使用详解】 JPivot是一款基于Mondrian的在线分析处理(OLAP)前端展示工具,专门用于解决OLAP应用的展示层问题。它提供了一整套丰富的标签库,便于开发者在JSP页面中集成和操控OLAP数据。以下是对...

    易语言源码标签使用.rar

    "易语言源码标签使用"是一个关于如何在易语言编程环境中使用标签(Label)的教程资源。标签在编程中通常用于显示静态文本,比如程序中的提示信息、标题或者状态描述。 在易语言中,标签控件是界面设计的重要组成...

    jeecms2012标签使用教程

    这个“jeecms2012标签使用教程”应该是指导用户如何有效利用这些标签来提高开发效率和提升网站功能的专业资料。 在Jeecms中,标签是预定义的功能块,它们允许开发者在模板中插入动态内容,而无需编写复杂的Java代码...

    struts标签使用中文说明文档

    1. 标签实例:文档会提供详细的标签使用示例,包括标签的完整形式、属性及其用法。 2. 标签功能解析:解释每个标签的作用和适用场景,帮助开发者理解何时应使用哪个标签。 3. 属性详解:详细解释各个属性的含义,...

    struts2 标签使用帮助

    本文将深入探讨Struts2的标签使用,主要分为以下几个部分: 1. **标签库介绍** Struts2的标签库包括核心标签库、展示标签库、逻辑标签库等。核心标签库提供基本的控制结构,如迭代、条件判断等;展示标签库主要...

    易语言源码标签使用.7z

    本压缩包"易语言源码标签使用.7z"显然包含了关于如何在易语言中使用标签的相关资料。标签在图形用户界面(GUI)编程中扮演着重要角色,它是用户与程序交互的一个关键元素,通常用于显示文本信息或者作为用户点击的...

    学习JEECMS标签使用说明pdf文档.pdf

    "JEECMS标签使用说明pdf文档.pdf" 本文档主要介绍JEECMS标签的使用说明,包括标签的基本概念、使用方法、 Include标签的使用等。 一、标签使用概述 JEECMS标签是一种特殊的模板语言,用于在模板中调用网站的各种...

    Struts2 标签使用简介

    这篇简介将深入探讨Struts2中的标签使用。 一、Struts2标签库概述 Struts2的标签库是由一系列预定义的JSP标签组成的,这些标签用于处理表单、显示数据、控制流程等任务,减少了开发者编写大量Java脚本和HTML代码的...

    struts1.2的标签使用手册

    本手册将深入探讨Struts 1.2中的标签使用,帮助你更好地理解和应用这些标签。 在Struts 1.2中,标签库分为多个部分,主要包括HTML、Logic、Bean和Tiles等。以下是对这些标签库的详细说明: 1. **HTML标签库**:这...

    FSC程序文件全套--010标签使用控制程序.doc

    **FSC程序文件详解——标签使用控制** FSC(森林管理委员会)标签使用控制程序的主要目的是确保公司的FSC标签使用遵循FSC的标准和要求,旨在规范FSC商标在产品及宣传材料上的应用,以体现公司的环保承诺和产品来源...

    MXML 基本语法和ActionScript 类的标签使用

    【MXML基本语法和ActionScript类的标签使用】 MXML是一种专用于Adobe Flex应用程序的XML语言,主要用于构建用户界面组件。MXML语法简洁且直观,它允许开发者通过标签来声明和配置UI组件,这些标签与ActionScript ...

    spring标签使用

    Spring 标签使用详解 Spring Framework 提供了一套支持数据绑定的标签集合,用于处理表单元素。这些标签来自 Spring 的表单标签库,从 2.0 版本开始,如果使用 JSP 和 Spring Web MVC 的话。每个标签所支持的属性...

Global site tag (gtag.js) - Google Analytics