2

以下のように、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でスクリプトレットを使用したくないので、タグを使用して同じことを達成する方法.

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ません。

スクリプトレットを避け、フレームワークのすべての機能をその UI タグでも使用するようにしてください。

于 2013-09-06T13:01:10.757 に答える