Jestem trochę zdezorientowany, kiedy używać w ${...}
porównaniu do #{...}
. Dokumentacja Springa używa tylko #{...}
, ale jest wiele przykładów, które używają ${...}
. Ponadto, kiedy zacząłem ze SpEL, powiedziano mi, żebym go używał ${...}
i działa dobrze.
Dla tych, którzy są zdezorientowani, byłby przykład tego, jak go używam
@Component
public class ProxyConfiguration {
@Value("${proxy.host}")
private String host;
@Value("${proxy.port}")
private String port;
:
}
i jakiś plik właściwości:
proxy.host=myproxy.host
proxy.port=8000
Moje pytania to:
- jakie są różnice czy to jest to samo?
- czy jedna wersja jest przestarzała, więc powinienem użyć drugiej?
"#{'${property}'}"
${expr}
-> Natychmiastowa ocena#{expr}
-> Odroczona ocenaPełne odniesienie tutaj
Nie ma JSP EL, JSP używa SpEL. SpEL pasuje do technologii, która go używa.
źródło
Spróbuj przeczytać ten artykuł , który sugeruje
„Jeśli używany jest skrót, kod jest obliczany ponownie za każdym razem, gdy element jest włączany do częściowego odświeżania (tj. Za każdym razem, gdy jest renderowany). Jeśli używasz dolara, kod jest obliczany tylko przy pierwszym załadowaniu strony. Ale to został rozszerzony poza EL, również na SSJS. Po krzyżyku lub dolarach nawiasy klamrowe oznaczają początek i koniec języka. Będzie to ważne, gdy później przejdziemy do łączenia języków ”.
źródło
Specyfikacja języka wyrażeń • Wersja ostateczna - 8 maja 2006
Strona 2:
Wyrażenie eval jest tworzone przy użyciu konstrukcji $ {wyrażenie} lub # {wyrażenie}. Obie konstrukcje są analizowane i oceniane w dokładnie taki sam sposób przez EL, mimo że mogą mieć różne znaczenia w technologii, która używa EL.
źródło