用于打印内容的JSP帮助程序类

用于打印内容的JSP帮助程序类,第1张

用于打印内容的JSP帮助程序类

只是不要使用“ HelperClass来打印数据”。这是没有道理的。那里有EL。

${bean.property}

就这样。使用Servlet来控制,预处理和后处理请求。使用taglibs(例如JSTL)和EL访问和显示后端数据。

这是Servlet的基本启动示例,该示例在显示在JSP中之前会对请求进行预处理:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    List<Person> persons = personDAO.list(); // Get list of persons from DB.    request.setAttribute("persons", persons); // So it's available as `${persons}` in EL.    request.getRequestDispatcher("/WEB-INF/persons.jsp").forward(request, response); // Forward to JSP for display.}

在这里,

Person
仅仅是代表现实世界实体的Javabean类。

public class Person {    private Long id;    private String name;    private String email;    private Integer age;    // Add/generate getters and setters here.}

PersonDAO#list()
方法只是返回
List
Person
从数据库对象:

public List<Person> list() throws SQLException {    Connection connection = null;    Statement statement = null;    ResultSet resultSet = null;    List<Person> persons = new ArrayList<Person>();    try {        connection = database.getConnection();        statement = connection.createStatement("SELECt id, name, email, age FROM person");        resultSet = statement.executeQuery();        while (resultSet.next()) { Person person = new Person(); person.setId(resultSet.getLong("id")); person.setName(resultSet.getString("name")); person.setEmail(resultSet.getString("email")); person.setAge(resultSet.getInteger("age")); persons.add(person);        }    } finally {        if (resultSet != null) try { resultSet.close(); } catch (SQLException logOrIgnore) {}        if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {}        if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}    }    return persons;}

地图在servlet中

web.xml
url-pattern
/persons
。JSP隐藏在其中,
/WEB-INF
因此没有任何人可以直接访问它而无需先请求servlet(否则将得到一个空表)。

现在,

persons.jsp
它看起来像这样:它使用JSTL(只需将jstl-1.2.jar放到中
/WEB-INF/lib
c:forEach
来对a进行迭代,
List
并使用EL来访问后端数据和bean属性。Servlet已为
List<Person>
as请求属性添加了名称,
persons
以便
${persons}
在EL中可用。每次迭代
c:forEach
都会
Person
返回一个实例,以便您可以使用EL显示它们的属性。

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

通过http://example.com/contextname/persons进行调用。就这样。无需“
HelperClass即可打印数据”;)要了解有关JSTL的更多信息,请查看Java
EE教程第二部分第7章,
而要了解有关EL的更多信息,请查看Java
EE教程第二部分第5章
。要了解有关PersonDAO背后内容的更多信息,请查看本文。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5066147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存