struts标签与jstl标签互换
近期在做struts切换spring mvc时发现代码中使⽤了⼤量的struts标签,对常⽤的struts标签做了总结,⾸先需要引⼊
<%@ taglib prefix="c" uri="java.sun/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">jstl常用标签有哪些
<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="java.sun/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="java.sun/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标签库的使⽤可以参考:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论