0

现在我可以从服务器获取 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;
}
}

如何获取数组中的值并使用它与复选框值进行比较?请帮我。

4

1 回答 1

0

您是否了解那里的 JSP 代码将在服务器端运行,并且它将 javascript 写入将在客户端运行的页面?我还没有阅读代码是否有意义,但是初始的 for 循环将导致向页面写入许多 javascript for 循环。

使用你的 jsp for 循环代码来添加你的ticketDiscountCarrierDOM 元素——这将要求你的服务器端代码返回所有可能的元素,而不仅仅是那些被选中的元素。或者,使用两个对象,一个用于所有对象,一个用于打折 - 但两者都从服务器提供。无论哪种方式,您现在都可以在创建时设置它们的检查状态,将负载放在服务器上而不是客户端上。如果我误解了,并且这是以某种方式异步使用的,请完全放弃 jsp 代码并使用纯 javascript 解析数据。

过度简化(allCarriers 是一个带有字符串名称和布尔值折扣的对象):

<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>
于 2013-08-30T09:19:46.417 回答