【问题标题】:Dynamic Dropdown Menu on Spring WebflowSpring Webflow 上的动态下拉菜单
【发布时间】:2019-08-28 22:03:33
【问题描述】:

我想知道在 Spring Webflow 环境中实现动态下拉菜单的最佳方式。

过去 3 个小时我一直在谷歌上搜索,我对如何实现它有几个想法。我的问题与了解清洁度和最佳实践方面的最佳解决方案有关。

我正在考虑创建一个 Spring MVC 控制器,它接收一个带有我所需参数的 AJAX 请求,并在响应中发送一个 JSON 列表。该请求将使用 jQuery 创建,因此响应也将被 jQuery 处理,从而创建更新所需的下拉菜单。

此外,无论采用何种解决方案,我都希望避免在 jQuery 处理程序中直接创建每个标签。是否没有为 jQuery 提供一种机制或实用程序,例如通过接收数组来更新下拉菜单?

有什么建议吗?

提前致谢。

【问题讨论】:

    标签: java dynamic drop-down-menu spring-webflow


    【解决方案1】:

    我是这样做的。

    <form:form commandName="dateRange">
        <!-- ... -->
        <select name="fyForDR" id="fyForDR" class='discretFont' style='margin-left:10px;margin-right:10px;'>
            <option value="" selected='selected'>Fiscal Year</option>
            <option value="2011" <c:if test="${fyForDR == '2011'}">selected="selected"</c:if> >FY11</option>
            <option value="2010" <c:if test="${fyForDR == '2010'}">selected="selected"</c:if> >FY10</option>
            <option value="2009" <c:if test="${fyForDR == '2009'}">selected="selected"</c:if> >FY09</option>
            <option value="2008" <c:if test="${fyForDR == '2008'}">selected="selected"</c:if> >FY08</option>
            <option value="2007" <c:if test="${fyForDR == '2007'}">selected="selected"</c:if> >FY07</option>
            <option value="2006" <c:if test="${fyForDR == '2006'}">selected="selected"</c:if> >FY06</option>
        </select>
        <script type="text/javascript">
            Spring.addDecoration(new Spring.AjaxEventDecoration({
                elementId: "fyForDR",
                event: "onchange",
                formId:"dateRange",
                params: {fragments:"body", _eventId: "setFy"}
            }));
        </script>
        <!-- ... -->
    </form:form>
    

    【讨论】:

    • techsjs2012 感谢您的回答。据我了解,您正在通过触发事件“setFy”重新加载 ID 为“fyForDR”的下拉菜单,然后我猜您的转换中有一些代码可以加载值列表,我错了吗?我完全不明白的是,如果下拉菜单中已经有元素,为什么要这样做。使用您的解决方案,每次触发“onchange”事件时,您都会丢失原始内容,不是吗?你能解释一下你的解决方案的行为吗?提前致谢。
    • 我这样做是在用户单击其中一个选项后,我删除了除该选项之外的所有内容
    猜你喜欢
    • 2013-08-06
    • 2013-11-05
    • 2017-10-06
    • 2018-09-29
    • 2012-08-29
    • 2014-06-16
    相关资源
    最近更新 更多