簡體   English   中英

如何使用Struts2使列表類型的變量為空 <s:if> 標簽

[英]How to null check variable of list type using struts2 <s:if> tag

我有從Jsp上的requestAttribute檢索到的Payment Gateway的列表,如下所示:

List<String> payGwList = (List<String>)request.getAttribute("payGwList");

我必須將它們填充到我的選擇框(組合框)中,但在此之前必須執行以下檢查

編輯

  1. 空檢查
  2. 大小> 1檢查

我的代碼是:

<%
 <%if(payGwList != null && payGwList.size() > 1){ //edited
%>
    <tr id="paygwrowid" >
    <td width="112" class="content">
        <s:label key="payment.paymentgateway"/><span class="requiredData">*</span>
    </td>
    <td colspan="2" class="content">
        <select name="paymentGateway" id="paymentGateway" class="content" style="width:189px;">
                <option value="0">--Select--</option>
            <%if(payGwList != null && !payGwList.isEmpty()){                    
                for(String paymentGateway : payGwList){  
            %>
                <option value="<%=paymentGateway%>"><%= paymentGateway%></option>                       
            <%}}%>
        </select>
    </td>
    </tr>
<%}%>

但是如何使用<s:if>標記實現相同的目標,因為我不想在jsp上使用scriptlet。

<% if(payGwList != null){ %> = <s:if test="payGwList != null"> ,而

<select name="paymentGateway" id="paymentGateway" class="content" style="width:189px;">
        <option value="0">--Select--</option>
    <%if(payGwList != null && !payGwList.isEmpty()){                    
        for(String paymentGateway : payGwList){  
    %>
        <option value="<%=paymentGateway%>"><%= paymentGateway%></option>                       
    <%}}%>
</select>

變得簡單

<s:select list = "payGwList"
       listKey = "paymentGateway"
     listValue = "paymentGateway"
     headerKey = "0"
   headerValue = "--Select--"
          name = "paymentGateway" 
            id = "paymentGateway" 
      cssClass = "content" 
      cssStyle = "width: 189px;" 
/>

在這里甚至沒有必要使用listValuelistKey ,因為它們使用的是相同的值。

避免使用Scritplet,並確保也通過其UI標簽使用框架的所有功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM