现在我可以从服务器获得EO,EO中有一个数组。我只是想从数组中获取值,我怎么能得到它?
以下是jsp中的代码:
<c:forEach items="${ticketDiscountCriteria.ticketDiscountCarrier}" var="carrier"
varStatus="carrierStatus">
for ( var j = 0; j < searchTicketDiscountForm.ticketDiscountCarrier.length; j++) {
var value = searchTicketDiscountForm.ticketDiscountCarrier[j].value;
alert(value);
<c:if test = "${carrier==value}">
alert(carrier.value);
searchTicketDiscountForm.ticketDiscountCarrier[j].checked = true;
break;
</c:if >
}
</c:forEach>
另一个代码是EO:
public class TicketDiscountCriteria implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 8427162334846611072L;
private String[] ticketDiscountCarrier;
public String[] getTicketDiscountCarrier() {
return ticketDiscountCarrier;
}
public void setTicketDiscountCarrier(String[] ticketDiscountCarrier) {
this.ticketDiscountCarrier = ticketDiscountCarrier;
}
}
如何获取数组中的值并将其用于与复选框值进行比较?请帮帮我。
答案 0 :(得分:0)
你是否理解那里的JSP代码将运行服务器端,并且它会将javascript写入将运行客户端的页面?我没有看过代码是否有意义但是初始for循环将导致向页面写入一些循环的javascript。
使用您的jsp for循环代码添加ticketDiscountCarrier
DOM元素 - 这将要求您的服务器端代码返回所有可能的元素,而不仅仅是已检查的元素。或者,使用两个对象,一个用于所有对象,一个用于打折 - 但两者都来自服务器。无论哪种方式,您现在都可以在创建时设置其已检查状态,将负载放在服务器上而不是客户端上。如果我误解了并且以某种方式异步使用,请完全抛弃jsp代码并使用纯javascript解析数据。
Over Simplified(allCarriers是一个具有String name且boolean discount的对象):
<c:forEach items="${ticketDiscountCriteria.allCarriers}" var="carrier">
<c:choose>
<c:when test="${carrier.discounted == true}">
<input type="checkbox" name="ticketDiscountCarrier" value="${carrier.name}" checked="checked">${carrier.name}
</c:when>
<c:otherwise>
<input type="checkbox" name="ticketDiscountCarrier" value="${carrier.name}">${carrier.name}
</c:otherwise>
</c:choose>
</c:forEach>