动态创建文本框,下拉列表和java中的其他控件

时间:2014-10-13 13:20:21

标签: java jquery ajax jsp

我正在使用strust2框架,jsp,java和cayenne作为orm的web应用程序。我是所有这些技术的新手,包括ajax和jquery。我必须创建一个jsp页面,其中用户从下拉列表中选择一个控件(文本框,标签,组合框,下拉列表)。它应该在上面的同一页面上创建它选择和提交的内容。 如果我能管理他们的尺寸,那将会很棒。

由于

1 个答案:

答案 0 :(得分:0)

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

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在onChange()上应用HTML select element事件

<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>

您可以将 class id 添加到每个html控件&amp;使用JQuery或外部css动态地将css应用于它们。

希望这会对你有所帮助。