基于 JDBC 元数据的 JSP html 表单生成

Posted

技术标签:

【中文标题】基于 JDBC 元数据的 JSP html 表单生成【英文标题】:JSP html form generation based on JDBC meta data 【发布时间】:2011-04-21 07:50:58 【问题描述】:

谁能给我一个好主意或提示(不是工具)我如何实现基于 JDBC 元数据的自动生成 html 表单? 我之前在 Java 独立程序中解决了这个问题 - 现在我想在 html 中扩展这个想法。 我不想使用 Spring、Wicket 或 JSF 来解决问题,我想自己动手从头开始学习。 我已经搜索了很多,我找到了很多东西,但没有任何东西可以回答我的问题。但我相信这个问题已经解决了十几次了。

谢谢 亚历克斯

【问题讨论】:

【参考方案1】:

创建一个servlet类,让它在doGet()方法中调用你的“Java独立程序”,从中获取一些List<Row>形式的想要的数据,放到请求范围内转发请求给JSP

List<Row> rows = yourProgram.list();
request.setAttribute("rows", rows);
request.getRequestDispatcher("/WEB-INF/list.jsp").forward(request, response);

最后在/WEB-INF/list.jsp 中使用JSTL c:forEach 来显示它。

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<table>
    <tr>
        <c:forEach items="$rows[0].columns" var="column">
            <th><c:out value="$column.name" /></th>
        </c:forEach>
    </tr>
    <c:forEach items="$rows" var="row">
        <tr>
            <c:forEach items="$row.columns" var="column">
                <td><input type="text" name="$fn:escapeXml(column.name)" value="$fn:escapeXml(column.value)" /></td>
            </c:ForEach>
        </tr>
    </c:forEach>
</table>

让它通过&lt;form method="post"&gt; 提交给一个servlet,并在doPost() 方法中收集数据。

【讨论】:

感谢您提供的这一小段代码;我还发现了您的其他示例之一,非常好。

以上是关于基于 JDBC 元数据的 JSP html 表单生成的主要内容,如果未能解决你的问题,请参考以下文章

使用 jsp 插入 oracle 数据库时出现异常“jdbc.odbc.JdbcOdbcDriver”

jsp DAO设计模式

基于java+mysql+JDBC+tomcat+Servlet+JSP+js的学生管理系统

JSP实现登录注册连接MySql数据库-初学(JSP+JDBC实现)

JSP+Servlet+JDBC+mysql实现的学生成绩管理系统

HTML,CSS,JavaScript,AJAX,JSP,Servlet,JDBC,Structs,Spring,Hibernate,Xml等概念