2013-09-06 7 views
2

У меня есть список Payment Gateway, извлеченный из requestAttribute на моем Jsp, как показано ниже:Как обнулить проверить переменный типа списка, используя Struts2 <s:if> тега

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

я должен заполнять их в моем выборе коробки (combo- коробка), но до этого нужно сделать следующие проверки

EDIT

  1. Null Check
  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.

+0

Код сценария должен перейти к действию, используемому для заполнения списка, а затем использовать тег struts 's: select', чтобы отобразить выпадающий список. –

ответ

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 и не забудьте использовать всю мощь фреймворка через свои теги пользовательского интерфейса.

+0

Извините Андреа, я отредактировал мой вопрос. Возможно ли, чтобы вы предоставили решение для этого. – Prateek

+0

Да, но в этом случае это бесполезно, потому что тег делает это за вас. '' или '' –

+0

Я пробовал идентификатор null && isEmpty, но ничего не происходит – Prateek