30

私は豆を持っています${product}。この Bean の使用可能なすべてのフィールド/プロパティを表示したいと思います。たとえば、${product.price}、など${product.name}です。${product.attributes.colour}

JSTL/EL を使用して、JSP でこれらのプロパティのすべての名前と値を動的に出力することは可能ですか?

何かのようなもの:

<c:forEach items="${product}" var="p">  
    ${p.key} - ${p.value}
</c:forEach>
4

4 に答える 4

2

@Tobyの回答のすぐに使用できるバージョン

<p class="TODO <your name> PRINT OBJECT PROPERTIES">
    <c:set var="object" value="${<your object here>}" />
    <h2><b>Object:&nbsp; ${object.class} </b></h2>
    <h3><b>Declared fields</b></h3>
    <c:if test="${!empty object.class.declaredFields}">
        <ul>
            <c:forEach var="attr" items="${object.class.declaredFields}">
                <c:catch><li><b>${attr.name}</b>:&nbsp; ${object[attr.name]}</li></c:catch>
            </c:forEach>
        </ul>
    </c:if>
    <c:if test="${empty object.class.declaredFields}">No declared fields</c:if>
    <h3><b>Declared methods</b></h3>
    <c:if test="${!empty object.class.declaredMethods}">
        <ul>
            <c:forEach var="attr" items="${object.class.declaredMethods}">
                <c:catch><li><b>${attr.name}</b>(...)</li></c:catch>
            </c:forEach>
        </ul>
    </c:if>
    <c:if test="${empty object.class.declaredMethods}">No declared methods</c:if>
</p>
于 2015-11-20T11:50:03.580 に答える
-3

JSTL オブジェクトと呼ばれるものはありません。JSTL は、JSP 内の Java オブジェクトに、よりクリーンで読みやすい方法 (他の方法はスクリプトレット) でアクセスする方法を提供するだけです。この場合の製品のJavaオブジェクトにtoString(toStringメソッドhttp://www.javatpoint.com/understanding-toString()-method )メソッドについて簡単に説明したリンクを実装するだけです。

1)あなたの質問がJavaでオブジェクトのプロパティを印刷する方法である場合

System.out.println(product)

2)JSPで印刷するには

 ${product}

あなたの場合のtoStringメソッドは次のとおりです

public String toString(){
return price + name;
}
于 2013-04-30T14:43:40.343 に答える
-6

オブジェクトが何であり、そのフィールドが何であるかを事前に知っておく必要があるのはあなたであるため、あなたがしたいことは基本的に意味がありません。何らかの理由でまだ続行したい場合は、必要なものを返すメソッドを使用できます。

public Map<String, Object> getProperties() {
    //create your map and populate it via plain strings-getters for fields
    //or use Java Reflection API
}

この方法を使用すると、マップにアクセスできます

${bean.properties}
于 2013-04-30T15:58:25.263 に答える