【问题标题】:Dynamic Creation of textbox , dropdown list and other controls in javajava中动态创建文本框、下拉列表等控件
【发布时间】:2014-10-13 13:20:20
【问题描述】:

我正在开发一个使用 strust2 框架、jsp、java 和 cayenne 作为 orm 的 Web 应用程序。我对所有这些技术都很陌生,包括 ajax 和 jquery。我必须创建一个 jsp 页面,其中用户从下拉列表中选择一个控件(文本框、标签、组合框、下拉列表)。它选择和提交的任何内容都应该在上面的同一页面上创建。 如果我也能管理它们的尺寸,那就太好了。

谢谢

【问题讨论】:

    标签: java jquery ajax jsp


    【解决方案1】:

    在您的服务类中,您可以在一个数组中添加您希望在下拉列表中显示的所有组件。就这样

    ArrayList<String> htmlControls = new ArrayList<>();
    htmlControls.add("input");
    htmlControls.add("textarea");
    htmlControls.add("checkbox");
    

    然后将此数组列表添加到 HTTP session 对象中,如

    session.setAttribute("htmlCtrls",htmlControls);
    

    在您的 JSP 中,您可以使用 JSTL for-each loop 创建动态下拉列表。

    <c:forEach var="controls" items="${session.htmlCtrls}">
        <options><c:out value="${controls}"/></options> 
    </c:forEach>
    

    使用 JQuery 在HTML select element 上应用onChange() 事件

    <script>
        $( "select" ).change(function () {
            var str = "";
            $( "select option:selected" ).each(function() {
                str = $( this ).text();
            });
            if(str == "input")
                $( "div" ).append("<input type='text' name='textbox1' value='' />");
            else if(str == "textarea")
                $( "div" ).append("<input type='textarea' name='textarea1' value='' />");
            // ...
        })
        .change();
    </script>
    

    您可以将 classid 添加到每个 html 控件,并使用 JQuery 或外部 css 将 css 动态应用于它们。

    希望这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 2021-05-18
      相关资源
      最近更新 更多