如何在Struts 2中使用<s:iterator>标签避免JSP中的500错误?

问题描述 投票:0回答:2

在我的网络应用程序中,我为

id
生成动态内容。

在我的代码下面:

function lookup(){
<% List<UserOrganization> el = (List<UserOrganization>) request.getAttribute("uselist");%>
<% for (int i = 0; i < el.size(); i++) {%>   
        var email<%out.print(i);%>="<%out.print(el.get(i).getUser_1().getEmailId());%>";
        $.ajax({
            type: "POST",
            url: "EveConnectOutletsCount",
            data: {
                email:email<%out.print(i);%>
            },
  
            success: function(data) {
    
                $('#ec<%out.print(i);%>').html(data)
                                  
            }  
        });
<% }%>           
}

JSP页面:

<s:iterator value="uselist">  
      <span id="ec<%=n%>"></span>
</s:iterator>

如果

uselist
有一定的价值,那么这个页面执行得很好。如果
uselist
为空,则会抛出 500 错误代码。

如何避免这个错误?

java jquery ajax jsp struts2
2个回答
0
投票

您可以从请求映射中访问请求属性。如果您需要索引 ID,请使用状态索引。

<s:iterator value="#request.uselist" status="st">  
  <span id="ec<s:property value='%{#st.index}'/>"></span>
</s:iterator>

0
投票

我通过添加以下代码解决了问题。

function lookup() {
'<s:if test="uselist.size()>0">'
  <% List<UserOrganization> el = (List<UserOrganization>) request.getAttribute("uselist");%>
<% for (int i = 0; i < el.size(); i++) {%>    
    var email<%out.print(i);%>="<%out.print(el.get(i).getUser_1().getEmailId());%>";
    $.ajax({
        type: "POST",
        url: "EveConnectOutletsCount",
        data: {
            email:email<%out.print(i);%>
        },
        success: function(data) {
            $('#ec<%out.print(i);%>').html(data)
        }
    });
<% }%>
'</s:if>'
}

所以如果列表是

null
,我的代码不会生成空指针异常。

© www.soinside.com 2019 - 2024. All rights reserved.