繁体   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