【问题标题】:Table changes depending on dropdown list values with servlet表的变化取决于 servlet 的下拉列表值
【发布时间】:2010-04-22 12:21:18
【问题描述】:

我想实现的是: 在 JSP x 中,当用户单击此按钮时,我有一个 3 个下拉列表和一个名为编辑的按钮,应动态显示一个表。现在该表已根据这 3 个下拉列表中的值进行了修改。所以它可以是 3 列或 4 列甚至 6 列,这取决于所选的值。所以我尝试的是使用servlet对getParameterif子句构造html然后转发响应。您对我可以在 JSP 中使用的结构有什么建议吗?谢谢你。

【问题讨论】:

    标签: html jsp servlets


    【解决方案1】:

    您不应该在 servlet 中构造 HTML。在 JSP 中进行。您可以使用JSTL 来控制JSP 页面中的页面流。只需将jstl-1.2.jar 放入/WEB-INF/lib 并根据前面链接的TLD 文档声明标签库。

    您可以使用<c:if><c:choose> 标记在页面流中引入条件。您可以使用<c:forEach> 标记来迭代JSP 中的数组或集合。您的功能要求非常模糊,但这里有一个启动示例:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <!doctype html>
    <html lang="en">
        <head>
            <title>SO question 2690671</title>
        </head>
        <body>
            <form>
                Cols: 
                <select name="cols">
                    <option>3</option><option>4</option><option>6</option>
                </select><br>
                Rows:
                <select name="rows">
                    <option>3</option><option>4</option><option>6</option>
                </select><br>
                <input type="submit">
            </form>
            <c:if test="${param.cols > 0 && param.rows > 0}">
                <p>Here is a table with ${param.cols} cols and ${param.rows} rows.
                <table>
                    <c:forEach begin="1" end="${param.rows}">
                        <tr>
                            <c:forEach begin="1" end="${param.cols}">
                                <td>cell</td>
                            </c:forEach>
                        </tr>
                    </c:forEach>
                </table>
            </c:if>
        </body>
    </html>
    

    很简单,不是吗?您实际上不需要 servlet,除非您想预处理行/列并实现一些验证/业务逻辑。只需将表单操作更改为 servlet URL,然后让 servlet 使用 requestdispatcher 将请求转发到 JSP,这在之前的几个答案中已经向您解释过。不要在 Servlet 中处理 HTML。没有必要这样做。

    毕竟,您确实需要先了解一些基本的 JSP/Servlet 教程/书籍,而不是在黑暗中摸索。你可以找到优秀的在线 JSP/Servlet 教程here,你可以找到好书herehere。把你的项目放在一边,专心学习这些东西。

    【讨论】:

    • 想了很多,真的很有帮助。我想是的,我必须离开我的项目一段时间。再想想。
    猜你喜欢
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多