struts2&jstl标签总结

struts2&jstl标签总结

struts2&jstl标签总结

引入STRUTS2标签库和JSTL标签库 
Java代码  
<%@ taglib prefix="s" uri="/struts-tags"%>  
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  

1、if 标签 
Java代码  
<s: if test="#parameters['siteId']!=null">  
</s: if>  

因为JSTL没有else标签 所以比较好的方法是 
Java代码  
<c: if var="current" test="${page.pageNo == i}">  
${i}  
</c: if>  
<c: if test="${not current}">  
</c: if>  

action里有boolean属性 
Java代码  
<s: if test="!emptySite"></s: if>  

Java代码  
<c: if test="${emptySite}"></c: if>  


2、select 标签 
Java代码  
<s:select list="pageList" listKey="key" id="swpTplCata" listValue="value" name="pageId" />  

pageList 对应action里的pageList属性 arrayList 
listKey="key" listValue="value" 为固定写法 
name="pageId" 为下拉框的默认值 pageId也是action里的属性 要提供get方法 

3、radio 标签 
Java代码  
<s: if test="checkedRoleIds.size() == 0">  
<s:radio name="checkedRoleIds" list="allRoleList" listKey="id" listValue="desc" />  
</s: if>  
<s: else>  
<s:radio name="checkedRoleIds" list="allRoleList" listKey="id" listValue="desc" value="checkedRoleIds[0]" />  
</s: else>  

value="checkedRoleIds[0]" 默认选中的值 
Java代码  
private List<Long> checkedRoleIds;  // 用户角色  
  
     public List<Long> getCheckedRoleIds() {  
         return checkedRoleIds;  
    }  
     public  void setCheckedRoleIds(List<Long> checkedRoleIds) {  
         this.checkedRoleIds = checkedRoleIds;  
    }  


4、form 标签 
Java代码  
<s:form method="post" action="%{#request.contextPath}/account/user!save"  
    theme="simple" enctype="multipart/form-data" id="register_form"  
    name="form">  


5、iterator 标签 
Java代码  
<s:iterator value="page.result">  
</s:iterator>  


6、jstl循环 
Java代码  
<c:forEach var="i" begin="1" end="${page.totalPages}" step="1">  
${i}  
</c:forEach>  


7、jstl循环map 
Java代码  
<c:forEach items="${model}" var="model">  
    ${model.key}  
    ${model.value}  
    <br />  
</c:forEach>  

自定义标签 
http: // dingbuoyi.iteye.com/admin/blogs/818950


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="Ettr.ee.id"/>
</c:forEach>
 通过struts2标签取jstl标签的变量时,如果有设置scope,可以从scope中取值如果没有就需要用Ettr来取值

2.从jstl标签中获取值
<c:set var="ctime" value="${el.createtime}" scope="request"/>
<c:set var="ctime2" value="${el.createtime}" />
<s:property value="#request.ctime"/>
<s:property value="Ettr.ctime2"/>

 3.在struts2标签中使用jstl
<s:iterator value="#request.serviceList" id="bs">
      struts2:<s:property value="#bs.keyid"/>
      el:${bs.keyid}
      jstl:<c:out value="${bs.keyid}"></c:out>
</s:iterator>
 
4.从struts2标签中取值
<!-- 数字类型-->
<s:set name="pp" value="11"></s:set> 
struts2:<s:property value="#pp"/>
el:${pp}
jstl:<c:out value="${pp}"></c:out>      

<!-- 字符串类型-->
<s:set name="pp2" value="'abc'" scope="request"></s:set>
struts2:<s:property value="#request.pp2"/>
el:${pp2}
jstl:<c:out value="${pp2}"></c:out> 

--选择和循环

<c:choose>
    <c:when test="${empty sessionScope.indexList}">
            没有你搜索的歌曲..<br />
    </c:when>
    <c:otherwise>
        <c:forEachitems="${sessionScope.indexList}" var="list"
            varStatus="vs">
            <a href="#"> ${list.tone_name}</a> -- ${list.singer}
             <br />
        </c:forEach>
    </c:otherwise>
</c:choose>


<s: if test="#session.indexList==null">
     没有你搜索的歌曲..<br />
</s: if>
<s: else>
 <s:iterator value="#session.indexList" var="list">
    <a href="#"><s:property value="#list.tone_name" /></a>--
         <s:property value="#list.singer" />
         <br/>
 </s:iterator>
</s: else>
</div> 

你可能感兴趣的:(struts2&jstl标签总结)