【问题标题】:view data form database table to table tag in jsp page在jsp页面中查看数据表单数据库表到表标签
【发布时间】:2010-09-13 23:15:07
【问题描述】:

我想在我的 JSP 页面工作中应用 MVC2 J2EE 方法。 我想将 Servlet 中的代码和 JSP 中的代码分开。 我面临的问题是我想显示数据库表中的所有用户及其数据 到 JSP 页面中的 HTML 表 现在我应该如何从 JSP 页面调用 servlet,因为显示页面中没有表单 而且我不知道我是否可以使用调度程序,因为管理员会点击<a href>display users 并且 JSP 页面应该显示所有用户。我该怎么做呢?

【问题讨论】:

    标签: jsp servlets


    【解决方案1】:

    只需使用 Servlet 的 doGet() 方法,而是调用 servlet 的 URL。

    例如

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<User> users = userDAO.list();
        request.setAttribute("users", users);
        request.getRequestDispatcher("/WEB-INF/users.jsp").forward(request, response);
    }
    

    web.xml 中映射这个servlet,如下所示:

    <servlet>
        <servlet-name>users</servlet-name>
        <servlet-class>com.example.UsersServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>users</servlet-name>
        <url-pattern>/users</url-pattern>
    </servlet-mapping>
    

    现在 http://example.com/context/users 可以访问 servlet。

    /WEB-INF/users.jsp 文件中使用JSTL c:forEach 在表格中显示用户。

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    ...
    <table>
        <c:forEach items="${users}" var="user">
            <tr>
                <td>${user.name}</td>
                <td>${user.email}</td>
                <td>${user.age}</td>
            </tr>
        </c:forEach>
    </table>
    

    JSP 文件将放在/WEB-INF 文件夹中,以避免在不先调用 servlet 的情况下访问它。

    另见:


    更新:要安装 JSTL,请执行以下步骤:

    1. 下载jstl-1.2.jar

    2. 将其放入/WEB-INF/lib 文件夹中。不要提取它!不要更改web.xml!一些糟糕的在线教程会建议这一点。他们都错了。

    3. 根据JSTL TLD documentation 在JSP 页面顶部声明感兴趣的标记库。例如JSTL core:

        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
      

    【讨论】:

    • 当我使用 时出错,所以我下载了 JSTL_imp jar 文件和 JSTL_api jar 文件并将其添加到我的项目中,但 尚未识别
    • 查看答案中的更新。我假设您使用的是 Servlet 2.5 容器(例如 Tomcat 6.x 及更高版本)并且您的 web.xml 被声明为 Servlet 2.5。
    • 你能告诉我servlet映射中的用户是什么users/users servlet-mapping> 是我的 JSP 页面吗?
    • 现在每个都比x 工作得很好,请参阅其他评论。
    猜你喜欢
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    相关资源
    最近更新 更多