近期在做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. PyQt4 初试牛刀一

    建立了一个MainWindow,创建最基本的菜单栏.状态栏.工具栏,并重新定义了"X"关闭的默认行为. # -*- coding: utf-8 -*- import sys fro ...

  2. LF模式是个坑,ZeroIce中间件让你体会这个痛

    LF模式是个坑,一个小小的失误就可能使你的网络处理瘫痪,Ice就很好地展现了出来,换句话说,Ice中间件或是LF模式就是一个坑,如果你一不小心. LF模式的官方论文中,论述了此模式用于高性能网络并发模 ...

  3. STL(标准模板库) 中栈(stack)的使用方法

    STL 中栈的使用方法(stack) 基本操作: stack.push(x)  将x加入栈stack中,即入栈操作 stack.pop()  出栈操作(删除栈顶),只是出栈,没有返回值 stack.t ...

  4. python常用的数据结构运行效率分析

    1.while循环和for循环相同条件下的运行效率比较: 如下代码: import time as tm import timeit as tt import random as rm def whi ...

  5. postman 第2节 数据同步和创建测试集(转)

    启动postman 后在右上角可以登录账号,登录后就可以同步自己的api测试脚本,连上网在办公区在家都可以同步. 创建测试集 1.点击collections,点击add folder 2.create ...

  6. Spring中@Value标签的使用详解

    1.@Value标签 由于Spring对通过IOC的方式对对象进行统一管理,所以对任何对象而言,其生成方法均由Spring管理.传统的方法是通过XML配置每一个Bean,并对这个Bean的所有Fiel ...

  7. java面向对象(四)之重写、重载

    重载 定义 重载:在一个类中,存在多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载. 编译器会根据实际情况挑选出正确的方法,如果编译器找不到匹配的参数或者找出多个可能的匹配就会 ...

  8. 程序员也有春天之HTTP/2.0配置

    哎呀,一不小心自己的博客也是HTTP/2.0了,前段时间对网站进行了https迁移并上了CDN,最终的结果是这酱紫的(重点小绿锁,安全标示以及HTTP/2.0请求). 科普 随着互联网的快速发展,HT ...

  9. markdown常用语法教程

    1. 标题 总共六级标题,"#"号后面最好加空格,美观可以在后面加上对应数量的"#" # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ### ...

  10. Springboot 框架实现rest接口风格

    在springboot中的一些注解解释: http://blog.csdn.net/u010399316/article/details/52913299 书写规则可参照这个: http://blog ...