近期在做struts切换spring mvc时发现代码中使用了大量的struts标签,对常用的struts标签做了总结,首先需要引入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 
1.logic:empty
logic:empty标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。该标签用于以下情况:
当Java对象为null时
当String对象为""时
当java.util.Collection对象中的isEmpty()返回true时
当java.util.Map对象中的isEmpty()返回true时
下面的代码示例了logic:empty标签判断集合persons是否为空:
<logic:empty name="listForm" property = "persons">
  <div>集合persons为空!</div>
</logic:empty>
可以使用jstl中的<c:if>来替换:
<c:if test="${listForm.persons == ''  || listForm.persons == null }">
  <div>集合persons为空!</div>
</c:if>
 
<c:if> 标签属性和说明

属性
描述
test
需要判断的条件
var
保存判断结果 true 或 false 的变量名,该变量可供之后的工作使用(可选)
scope
变量的作用范围,若没有指定,默认为保存于 page 范围中的变量(可选)
 
2.logic:notEmpty
与logic:empty相反,用来判断非空:
<c:if test="${listForm.persons != ''  && listForm.persons != null }">
  <div>集合persons不为空!</div>
</c:if>
 
3.比较符
logic:equal(=)
logic:notEqual(!=)
logic:greaterEqual(>=)
logic:lessEqual(<=)
logic:graterThan(>)
logic:lessThan(<)
这一类同样可以采用<c:if>来做替换
 
4. logic:iterator
用于显示列表为collection的值(List ,ArrayList,HashMap等)。
logic:iterate标签用来迭代集合,您可以使用如下方式来为这个标签指定其要叠代的集合:
使用一个运行时表达式,这个表达式的值是一个集合。
用name属性引用一个JSP Bean,这个JSP Bean本身就是一个集合。
用name属性引用一个JSP Bean,这个JSP Bean的一个属性是一个集合,这时可以联合使用property来指定这个集合。
<logic:iterate id="emp" name="empList">
  <bean:write name="emp" property="name"/><br>
</logic:iterate>
可以使用<c:forEach>替换
<c:forEach items="${empList}" var="emp" >
  <c:out value="${emp.name }"/>
</c:forEach>
如果需要获取遍历时的index,可以设定<c:forEach>的varStatus属性,通过${status.index }获取:
<c:forEach items="${empList}" var="emp" varStatus="status" >
  <c:if test="${status.index ==0 }">
    <c:out value="${emp.name }"/>
  </c:if>
</c:forEach>
当然啦,我们也可以获取集合的长度,这时候需要我们引入<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
通过${fn:length(empList)}来获取集合长度
下面是使用到的一些标签的说明:
  <c:out> 标签属性和说明

属性
描述
value
输出到页面的数据,可以是 EL 表达式或常量(必须)
default
当 value 为 null 时显示的数据(可选)
escapeXml
当设置为 true 时会主动更换特殊字符,比如“ &lt;,&gt;,&amp; ”(可选,默认为 true )

<c:forEach> 标签属性和说明

属性
描述
items
进行循环的集合(可选)
begin
开始条件(可选)
end
结束条件(可选)
step
循环的步长,默认为 1 (可选)
var
做循环的对象变量名,若存在 items 属性,则表示循环集合中对象的变量名(可选)
varStatus
显示循环状态的变量(可选)

Functions 标签库

 Functions 标签库分为两大类,共 16 个函数。
长度函数: fn:length
字符串处理函数: fn:contains 、 fn:containsIgnoreCase 、 fn:endsWith 、 fn:escapeXml 、 fn:indexOf 、 fn:join 、 fn:replace 、 fn:split 、 fn:startsWith 、 fn:substring 、 fn:substringAfter 、 fn:substringBefore 、 fn:toLowerCase 、 fn:toUpperCase 、 fn:trim
 
5.<bean:message key="">
用来做前台国际化
jstl标签库中也提供了国际化标签,使用时需要引入:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<bean:message key="str" arg0="${now}"/>
可以替换成:
<fmt:message key="str">
     <fmt:param="${now}/>  
<font:message/>
其中,<fmt:param>作为占位符使用
 I18N formatting 标签库

看到I18N 就应该想到知识“国际化”, I18N formatting 标签库就是用于在 JSP 页面中做国际化的动作。在该标签库中的标签一共有 12 个,被分为了两类,分别是:
国际化核心标签: <fmt:setLocale> 、 <fmt:bundle> 、 <fmt:setBundle> 、 <fmt:message> 、 <fmt:param> 、 <fmt:requestEncoding> 。
格式化标签: <fmt:timeZone> 、 <fmt:setTimeZone> 、 <fmt:formatNumber> 、 <fmt:parseNumber> 、 <fmt:formatDate> 、 <fmt:parseDate>
 
由于时间原因,就暂时分享到这里,希望大家多多指正,谢谢!
 
补充说明:
更多关于JSTL标签库的使用可以参考:http://blog.csdn.net/h396071018/article/details/6663412

struts标签与jstl标签互换的更多相关文章

  1. JSP标签:jsp内置标签、jstl标签、自定义标签

     一.jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签    1 ...

  2. Jsp的内置标签和jstl标签

    1.内置标签(动作标签) 内置标签不需要再jsp页面导入标签 1).forward:请求的转发,格式如下 <%-- 作用与这个相同 <%request.getRequestDispatch ...

  3. EL标签和JSTL标签---JSP页面的应用

    ====EL(Expression Language)表达式语言:用于计算和输出存储在标志位置(page.request.session.application)的java对象的值: 1.开启和关闭E ...

  4. 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

    学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签.  jsp标签的分 ...

  5. jsf标签,jsp标签与jstl标签

    JSF通过定制标签与JSP集成.之前展示过的所有 JSF标签,<h:inputText>.<h:outputText>.<h:form> 和<f:view&g ...

  6. JSP标签和JSTL标签注意点

    1.转发和重定向问题 当前项目:/Test 转发路径:"/"根目录表示当前项目"/Test","/login.jsp"就是"/Te ...

  7. JSP标签、JSTL标签、EL表达

    JSP页面转发,附带数据 <jsp:forward page="/jsptag2.jsp"> <jsp:param name="name" v ...

  8. jsp无法支持el标签及jstl标签

    在jsp页面头部添加如下 <%@ page isELIgnored="false"%> <%@ taglib uri="http://java.sun. ...

  9. 2015第37周一struts2 jstl 标签

    1.在jstl中使用struts2  <c:forEach var="ee" items="${requestScope.serviceList}" &g ...

随机推荐

  1. [js高手之路]设计模式系列课程-设计一个模块化扩展功能(define)和使用(use)库

    模块化的诞生标志着javascript开发进入工业时代,近几年随着es6, require js( sea js ), node js崛起,特别是es6和node js自带模块加载功能,给大型程序开发 ...

  2. C++基础:二维数组动态的申请内存和释放内存

    使用二维数组的时候,有时候事先并不知道数组的大小,因此就需要动态的申请内存.常见的申请内存的方法有两种:malloc/free 和 new/delete. 一.malloc/free (1)申请一维数 ...

  3. postgresql如何维护WAL日志/归档日志

    WAL日志介绍 wal全称是write ahead log,是postgresql中的online redo log,是为了保证数据库中数据的一致性和事务的完整性.而在PostgreSQL 7中引入的 ...

  4. C++重写(override)、重载(overload)、重定义(redefine)以及虚函数调用

    一.基本概念 对于C++中经常出现的函数名称相同但是参数列表或者返回值不同的函数,主要存在三种情况: 1.函数重写(override) 函数重载主要实现了父类与子类之间的多态性,子类中定义与父类中名称 ...

  5. [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下)

    本文继续接着上文,继续写下webpack.config.js的其他配置用法. 一.把两个文件打包成一个,entry怎么配置? 在上文中的webpack.dev.config.js中,用数组配置entr ...

  6. sqlserver自定义函数

    标量函数 RETURNS 子句指定一种标量数据类型,则函数为标量值函数. 语法 Create function 函数名(参数) Returns 返回值数据类型 [with {Encryption | ...

  7. 0908期 HTML 样式表属性

    1.背景与前景    /*背景色,样式表优先级高*/ background-image:url(路径);    /*设置背景图片(默认)*/ background-attachment:fixed;  ...

  8. yum仓库的定制

    矮哥linux运维群: 93324526 笔者QQ:578843228 一.简介 软件包的分类.源码包脚本安装二进制包(rpm包.系统默认包) 源码包: C语言的源代码优点:开源,如果有能力,可以修改 ...

  9. 【深入Java虚拟机】之八:Java垃圾收集机制

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/18076173 对象引用 Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了J ...

  10. Bootstrap框架的了解和使用(一)

      前  言 Bootstrap 什么是 Bootstrap?Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JavaScrip ...