2

我有从我的 Jsp 上的 requestAttribute 检索到的支付网关列表,如下所示:

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 相同的效果。

4

1 回答 1

4

<% 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;" 
/>

listValue在这里甚至listKey没有必要,因为您对它们都使用了相同的值。

避免使用 Scritplets,并确保通过其 UI 标签使用框架的所有功能。

于 2013-09-06T13:01:10.757 回答