如何显示所有字段?

时间:2014-07-16 16:05:30

标签: java spring jsp

我正在使用hibernate 4.2.6Spring 4.0.1 我们让实体类Sale包含以下字段:

private int id;
private String name;
private int count;
private int sum;
private Date date;

我的数据库包含几行,对应于这个实体。我想在jsp页面中显示以下任何字段:

<c:forEach var="sale" begin="0" step="1" items="${sales}">
    ${sale.name}
    ${sale.count}
    ${sale.sum}
    ${sale.date}
</c:forEach>

sales List<Sale>sale

但我不想手动输入这些字段。有没有办法自动完成?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

    <c:forEach var="sale" items="${sales}">
        <c:forEach var="field" items="${sale.class.declaredFields}">
            <!--To catch NoSuchFieldException,SecurityException-->
            <c:catch>Field Name:${field.name} - Field Value:${sale[field.name]}  
            </c:catch>          
        </c:forEach>
    </c:forEach>

Java相当于:

if(sale.getClass().getDeclaredFields() != null){
    for(Field field : sale.getClass().getDeclaredFields()){
        System.out.println("Field Name:"+field.getName());
        System.out.println("Field value:"+field.get(sale));
    }
}

只要Sale将简单数据类型作为字段,这将显示正常。如果它有一个List myList,它将显示为:myList [str1,str2]。