2009-08-21 7 views
4

Ich kann Objekte aus meinen Java Beans in .jsp-Dateien verwenden, indem ich die Expression Language (EL) verwende. Daher kann ich meinen Wert durch Eingabe von $ {foo.bar} ermitteln. Aber ich kann auch # {foo.bar} benutzen.

Kann jemand den Unterschied erklären oder einen Link mit aussagekräftigen Informationen bereitstellen?

Antwort

6

#{foo.bar} Die Syntax stammt aus der JSF-Ausdruckssprache. Einige helle Funken dachten, es wäre eine gute Idee, eine andere Syntax als JSP EL zu verwenden (d.h. ${foo.bar}). Ich denke, einige JSP-Container sind tolerant für diesen Cockup, und Sie können einen verwenden.

+0

So könnte ich $ {...} jederzeit verwenden und # {...} nur im Falle der Verwendung von JSF, was bedeutet, dass # {...} die gleiche Funktionalität hat ... Das muss wirklich gewesen sein ein heller Funke: D Danke;) – Marcus

+0

JSF war vom ersten Tag an eine grässliche Sauerei, und seitdem haben sie versucht, über die Risse nachzudenken. – skaffman

+0

Ok ... aber warum ist es ein Durcheinander? Ich bin neu dazu, daher habe ich nicht viel Erfahrung damit;) – Marcus

17

Dies ist in der JSP 2.1 spec abgedeckt.

In Java EE wird #{expr} für latente Auswertung und ${expr} für sofortige Auswertung herangezogen. Deferred Expressions (#{expr}) Ausdrücke können nur mit Tag-Attributen verwendet werden, die sie akzeptieren. Dies ist eine Java EE-Konvention, aber andere Domänen können ihre eigene Bedeutung festlegen (z. B. wenn Sie use EL in your own templates möchten).

+0

Aha, interessant, das war mir nicht bewusst. +1 – skaffman

Verwandte Themen