0

大家早上好,我有一段对我来说看起来很重的代码,我想用轻量级的代码。我的任务是使用两个下拉框选择州和城市。我需要根据州下拉框更改城市下拉框,请帮助我

这是我的代码:::

<fieldset>
    <legend>Compare To</legend>
    <span>state</span><select id="locationId" name="locationId">
    <option value="0" <c:if test="${loc.location eq '0'}">selected="selected"</c:if>>All Locations</option> 
    <c:forEach items="${locationDetailsList}" var="locationDetails">
        <option value="${locationDetails.locationId}" <c:if test="${loc.locationId2 eq locationDetails.locationId}">
        selected="selected"</c:if>>${locationDetails.locationName}</option>
    </c:forEach></select>

    <span>area</span> 
    <select id="area" name="area">
        <option value="0" <c:if test="${locationId eq '0'}">selected="selected"</c:if>>All Locations</option> 
        <option value="1" <c:if test="${locationId ge '1'}">selected="selected"</c:if>>Hyderabad</option>
        <option value="1" <c:if test="${locationId ge '1'}">selected="selected"</c:if>>Vizag</option>
    </select> 
</fieldset> 

提前谢谢亲爱的朋友们...

4

1 回答 1

0

从这个问题的答案:JSF2 Facelets中的JSTL......有意义吗?, JSTL标记 (...) 在视图构建期间执行,这意味着它们在构建要呈现给客户端的 HTML 时仅被评估一次。

知道这一点,您<select id="area">只能通过对服务器执行完整的请求/响应以根据<select id="locationId">组件的值加载值来更新您的数据。

在这个时代,仅使用下拉列表的元素让用户获得全新的响应是非常痛苦的,因此您可以使用 Ajax 方法,如下所示:如何使用 Servlets 和 Ajax?请注意,BalusC 甚至在Here's another example 中编写了一个关于构建<option>列表的完整示例,该示例显示部分。Map<String, String>Map<String, String><option>

请记住,对于 ajax 解决方案,您的<select id="area">内部不应该有任何 JSTL 标记,它根本不应该有任何元素:

<select id="area">
</select>
于 2013-02-15T06:34:29.740 回答