Frage

Ich weiß, dass Sie den <jsp:useBean> Tag verwenden können Objekte innerhalb JSPs zu instanziiert ohne Code scriptlet greifen zu müssen. Allerdings würde ich gerne ein Integer instanziiert, den Wert auf das Ergebnis eines EL-Ausdrucks ist, so etwas wie:

<jsp:useBean id="total" class="java.lang.Integer">
    <jsp:setProperty name="amount" value="${param1 + param2}"/>
</jsp:useBean>

Dieser Kurs wird nicht funktionieren, weil Integer-Objekte haben keine Eigenschaft ‚Betrag‘ genannt, der einzige Weg, ihr Wert kann eingestellt werden über einen Konstruktor Parameter (d Integer-Objekte sind unveränderlich). Gibt es eine Möglichkeit, ein solches Objekt zu instanziiert und legen Sie es Wert ist ohne scriptlet Code?

Danke, Don

War es hilfreich?

Lösung

<c:set var="amount" value="${param1 + param2}" scope="page" />

Andere Tipps

Primitive Wrapper haben auch kein Default-Konstruktor, so dass Sie nicht einmal eine auf diese Weise initialisieren können.

Ich bin nicht sicher, dass EL soll in dieser Weise verwendet werden. Es ist eher eine Template-Sprache. Es ist nicht klar, welchen Vorteil, was Sie versuchen, wie hat über etwas zu tun:

<%
  Integer total = new Integer(param1 + param2);
%>

Und dann nur mit <% = totales%>, wo Sie den Wert ausgegeben werden müssen. Sie könnten auch tun:

<%
  pageContext.setAttribute("total", new Integer(param1 + param2));
%>

Wenn Sie den Wert auf sein in der Seitenumfang wie useBean wollen tun wird.

Wenn Sie eine Bohne haben, können Sie aktualisieren nur die Bohne mit param1 und 2? Erstellen Sie eine Methode, setAmount (param1, param2), und setzen Sie ihn, bevor Sie verwenden getAmount (), das ist, was die Bohne nennen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top