【问题标题】:JSP/JSTL parsing ArrayList that is property of passed objectJSP/JSTL 解析作为传递对象属性的 ArrayList
【发布时间】:2011-11-14 07:06:35
【问题描述】:

我正在尝试解决一个棘手的 JSTL 问题,希望得到一些帮助......

我在控制器中填充 Table 对象以显示在 jsp 页面上,并且我试图弄清楚如何通过 Arraylists 解析以使用 JSTL 生成一个 html 表。

因此,作为起点,查看 Table 对象...

使用 Spring 3.0 MVC

型号:

public class Table {

private String id;
private ArrayList<Row> rows;

public String getId() {
    return id;
}

public ArrayList<Row> getRows() {
    return rows;
}

public void setRows(ArrayList<Row> rows) {
    this.rows = rows;
}

控制器:

Table table = new Table();
ArrayList<Row> rows = new ArrayList<Row>();
ArrayList<Field> fields = new ArrayList<Field>();

fields.add(new Field("0","test0"));
fields.add(new Field("1","test1"));
fields.add(new Field("2","test2"));

Row row = new Row();
row.setPKValue("testPK");
row.setFields(fields);
rows.add(row);

table.setRows(rows);
table.setId("test");

ModelAndView mav = new ModelAndView();
mav.addObject("table",table);
mav.setViewName("healthcenter/report");

return mav;

JSP 文件:

<c:forEach var="row" items="${table.rows}">
${row.PKValue}
</c:forEach>

这不会产生任何输出,我期望输出行 PKValue 属性,不确定问题出在哪里,任何见解都会很棒!

【问题讨论】:

  • JSTL 对我来说看起来不错,但您的示例过于简化,因此很难分辨。您是否通过向其添加测试字符串来检查您的 MaV 对象是否正在传输? ${table.id} 是否输出预期的“测试”值?您是否在 HTML 中获得了空的 或 元素(您没有显示周围的 JSP 代码)?您的 Row 类是否有 PKValue 的吸气剂(未显示 Row 类)?

标签: jsp spring-mvc jstl


【解决方案1】:

假设Row上的方法是getPKValue,那么你需要在JSP中引用它为pKValue,而不是PKValue,即

${row.pKValue}

这是一个糟糕的属性名称,但它看起来令人困惑。我建议将其重命名为更传统的名称,例如getId(即${row.id})或getKey(即${row.key})。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-30
    • 2014-11-25
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多