struts标签与jstl标签互换

mac2022-06-30  69

近期在做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 时会主动更换特殊字符,比如“ <,>,& ”(可选,默认为 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

转载于:https://www.cnblogs.com/xiaoQ0725/p/7574303.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)