struts标签与jstl标签互换

近期在做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" %>

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

时间: 2024-10-10 08:16:20

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

Struts标签,jstl标签等判断字符串包含

判断某值是否包含指定的字符串的几种写法. 1.jstl标签写法, 主要使用的是 fn,使用的时候,需要引入 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <c:choose> <c:when test="${fn:contains(item.name,'全能')}"> <strong> <font 

Jsp的内置标签和jstl标签

1.内置标签(动作标签) 内置标签不需要再jsp页面导入标签 1).forward:请求的转发,格式如下 <%-- 作用与这个相同 <%request.getRequestDispatcher("/forward2.jsp?name=gqxing").forward(request, response); %> --%> <jsp:forward page="/forward2.jsp"> <jsp:param value=

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

学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 1.内置标签(动作标签): <jsp:forward />转发标签: 语法:<jsp:forward page="

 jsp页面如何结合EL标签或JSTL标签,进行判断的?

JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x.在JSP 2.0中也是作为标准支持的. 这主要是为了替换以前Java代码写在Jsp页面上的写法.例如: 以前写法如下: 1 2 3 4 <%              String amind="Admin";       

18、EL表达式、JSP标签、JSTL标签、自定义标签

EL表达式 jsp的核心语法: jsp表达式 <%=%>和 jsp脚本<% %>. 以后开发jsp的原则: 尽量在jsp页面中少写甚至不写java代码. 使用EL表达式替换掉jsp表达式 EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!! 语法: ${变量或表达式} EL语法 1 输出基本数据类型变量 从四个域获取 ${name} 指定域获取 ${pageScope.name} 域范围: pageScoep / requestScope / sessionSco

2015第37周一struts2 jstl 标签

1.在jstl中使用struts2  <c:forEach var="ee" items="${requestScope.serviceList}" > jstl:<c:out value="${ee.id}"></c:out> el:${ee.id} struts2: <s:property value="#attr.ee.id"/> </c:forEach> 通过

JSTL标签库(转)

原文地址:http://www.blogjava.net/maverick1003/articles/236575.html JSTL标签库 JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的.在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库. JSTL标签库可分为5类: 1      核心标签库 2        I18N格式化标签库 3 

EL表达式 与 JSTL标签库

EL表达式 什么是el jsp内置的表达式语言 el表达式的作用 代替脚本 el如何获取数据 1.获取域中的数据 简单数据:${域中的key值} 注意:如果多个域中的key值一样 那么取出的顺序? 从范围小的开始查找,查找到以后就返回 如果没有查询到对应的key 返回""(空字符串) 例如: <% pageContext.setAttribute("num", 5); request.setAttribute("num", 1); sess

struts标签、OGNL表达式、JSTL标签、EL表达式

Struts标签.Ognl表达式.el表达式.jstl标签库这四者之间的关系和各自作用 我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用    Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码复用.Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求. Struts2的标签库有一个巨大的改进之