我有从Jsp上的requestAttribute检索到的支付网关列表,如下所示:
List<String> payGwList = (List<String>)request.getAttribute("payGwList");
我必须在我的选择框(组合框)中填充它们,但在此之前必须进行以下检查
修改
- 空检查
- 尺寸&gt; 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。
答案 0 :(得分: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标签使用框架的所有功能。