以编程方式在jsp中创建输入表单元素

时间:2012-07-09 21:58:02

标签: forms jsp

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

1 个答案:

答案 0 :(得分:0)

您是否从数据库中获得了一个简单的字符串列表?
你能用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>