zoukankan      html  css  js  c++  java
  • 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" %>
    <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
  • 相关阅读:
    Django restfull规范
    Python3中的zip()
    关于负数的isdigit()判断
    Win7 x64安装Paramiko
    深度学习性能提高
    神经网络激励函数
    机器学习十大算法
    深度学习十大框架比较
    python 换行
    python sort() sorted() 与argsort()函数的区别
  • 原文地址:https://www.cnblogs.com/xiaoQ0725/p/7574303.html
Copyright © 2011-2022 走看看