【问题标题】:programmatically creating input form elements in jsp以编程方式在 jsp 中创建输入表单元素
【发布时间】:2017-07-12 17:43:58
【问题描述】:

我有一个独特的要求,我的 jsp 上的输入文本元素是根据数据库中表中的数据显示的。这个想法是以编程方式在 jsp 上显示输入元素,而不是对它们进行硬编码。由于我正在处理数百个奇怪的输入元素,我认为创建 JSON 对象将是最可行的选择,但这在进行服务器端验证时并没有真正帮助。所以我最终决定使用 Spring MVC 并对 jsp 中的每个元素进行硬编码,这在这种情况下似乎不是最好的方法。当我们不确定输入元素将是什么时(在这种情况下,列表来自数据库),是否有更好、更优雅的方式来动态构建表单?
非常感谢您的回复。

【问题讨论】:

    标签: forms jsp


    【解决方案1】:

    您是否从数据库中获取了一个简单的字符串列表?
    你可以使用 JSTL 吗?如果没有,那么您可以使用 scriptlet。但是,很多人不喜欢使用一个。不管怎样,这里有一个 JSP 演示了这两种方式。

    <%@ page import="java.util.*" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
    <%  
       // create a list for testing
       List<String> list = new ArrayList<String>();
       list.add("blue");
       list.add("green");
       list.add("red");
       list.add("yellow");
       pageContext.setAttribute("list", list);
    %>
    <html>
    <body>
    <form>
    <c:forEach items="${list}" var="current">
       ${current}<input name="${current}" type="text" />
    </c:forEach>
    <br/>
    <%
      for(String item: list){
        out.print(item + "<input name=\"" + item + "\" type=\"text\" />");
      }
    %>
       <input type="submit"  />
    </form>
    </body>
    </html>
    

    【讨论】:

    • 我最初做了一些非常相似的事情,但由于我有超过 100 个输入元素,因此验证字段变得非常困难
    • 您想对输入执行哪些验证?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2017-06-08
    相关资源
    最近更新 更多