java - 如何使用struts2 <s :if> tag对列表类型的变量进行空检查

标签 java jsp struts2 scriptlet struts-tags

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

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

我必须将它们填充到我的选择框(组合框)中,但在此之前必须进行以下检查

编辑

  1. Null Check
  2. size > 1 Check

我的代码是:

<%
 <%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 标签使用框架的所有功能。

关于java - 如何使用struts2 <s :if> tag对列表类型的变量进行空检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18653334/

相关文章:

java - 如何将请求从servlet 转发到struts2 的action?

java - 为什么在 Java 中更喜欢使用列表而不是数组?

java - 限制 findAll() 结果

java - Struts 不从参数列表中排除提交操作

java - 基本属性访问器 :167 - IllegalArgumentException in class in Struts

java - 每个请求的 Csrf token

java - Struts2 在我的 AJAX 调用中返回空 JSON

java - 开始视频录制后屏幕变黑--android应用程序

java - Web 服务不会减去字符串中的时间

spring - 使用自己的登录表单进行太多重定向 - Spring Security