使用JSF呈现HTML表

使用JSF呈现HTML表,jsf,servlets,Jsf,Servlets,我需要从Servlet呈现一个HTML表,以响应AJAX请求。我想知道最好的办法是什么?我已经使用javax.faces.component.html.HtmlDataTable进行了探索。关于这个方法,我的一个问题是,一旦填充了表,如何呈现HTML。从外观上看,需要FacesContext 有什么想法吗?JSF不是您想要的。这是一个基于组件的MVC框架。只需在servlet中的一个简单循环中以简单和丑陋的方式执行即可: writer.write("<table>"); for (I

我需要从Servlet呈现一个HTML表,以响应AJAX请求。我想知道最好的办法是什么?我已经使用javax.faces.component.html.HtmlDataTable进行了探索。关于这个方法,我的一个问题是,一旦填充了表,如何呈现HTML。从外观上看,需要FacesContext


有什么想法吗?

JSF不是您想要的。这是一个基于组件的MVC框架。只需在servlet中的一个简单循环中以简单和丑陋的方式执行即可:

writer.write("<table>");
for (Item item : items) {
    writer.write("<tr>");
    writer.write(String.format("<td>%s</td>", item.getFoo()));
    writer.write(String.format("<td>%s</td>", item.getBar()));
    writer.write("</tr>");
}
writer.write("</table>");
这又基本上包含以下内容:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<table>
    <c:forEach items="${items}" var="item">
        <tr>
            <tr>${item.foo}</td>
            <tr>${item.bar}</td>
        </tr>
    </c:forEach>
</table>
可以使用以下方法将其渲染到表中:

$.getJSON('json/items', function(items) {
    var table = $('#someelement').append('<table>');
    $(items).each(function(i, item) {
        var row = table.append('<tr>');
        row.append('<td>').text(item.foo);
        row.append('<td>').text(item.bar);
    });
});
$.getJSON('json/items',函数(items){
变量表=$('#someelement')。追加('';
$(项目)。每个(功能(i,项目){
var行=table.append(“”);
行追加(“”).text(item.foo);
行。追加(“”)。文本(项。栏);
});
});
另见:

谢谢你,巴卢斯克。我用了一个StringBuilder来做这件事。看起来很轻。实际上,我从你的博客中得到了HtmlDataTable的想法。-->
writer.write(new Gson().toJson(items));
$.getJSON('json/items', function(items) {
    var table = $('#someelement').append('<table>');
    $(items).each(function(i, item) {
        var row = table.append('<tr>');
        row.append('<td>').text(item.foo);
        row.append('<td>').text(item.bar);
    });
});