在我的网络应用程序中,我为
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 错误代码。
如何避免这个错误?
您可以从请求映射中访问请求属性。如果您需要索引 ID,请使用状态索引。
<s:iterator value="#request.uselist" status="st">
<span id="ec<s:property value='%{#st.index}'/>"></span>
</s:iterator>
我通过添加以下代码解决了问题。
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
,我的代码不会生成空指针异常。