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

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

谢谢 亚历克斯

【问题讨论】:

    标签: sql jsp jdbc metadata


    【解决方案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() 方法中收集数据。

    【讨论】:

    • 感谢您提供的这一小段代码;我还发现了您的其他示例之一,非常好。
    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多