на практике часто возникает задача отображать данные в виде списка или таблицы, но случай, когда данных нет, требуется обрабатывать особо. Например, в случае с Java и JSTL код темплейта оказывается весьма тяжеловесным, и я, признаться, не встречал особенно выдающихся альтернатив
Приведу как минимум 2 примера, на вскидку, для решения вышеозвученной "проблемы".
Исходные данные:
<java> Class Row{ private int id; private String text; ... вырезанные getters & setters ... } Listrows; // Количество элементов от 0 до n </java>
Способ первый: "прямой" вывод данных с помощью смеси JSTL+HTML
<jsp> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <table> <thead> <tr> <th>id</th> <th>text</th> <tr> </thead> <tbody> <c:choose> <c:when test="${fn:length(rows)>0}"> <c:forEach var="row" items="${rows}"> <tr> <td>${row.id}</td> <td>${row.text}</td> </tr> </c:forEach> </c:when> <c:otherwise> <tr> <td colspan="2">Нет данных для вывода</td> </tr> </c:otherwise> </c:choose> </tbody> </table> </jsp>
Способ второй: с помощью DisplayTag
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://displaytag.sf.net" prefix="display"%> <display:setProperty name="basic.empty.showtable" value="true"/> <display:setProperty name="basic.msg.empty_list" value="Нет данных для вывода"/> <display:table name="rows"> <display:column property="id" /> <display:column property="text" /> </display:table>
Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!
Комментариев нет:
Отправить комментарий