Tôi muốn sử dụng EL trong đơn đăng ký của mình. Nhưng tôi không thể tìm thấy bất kỳ cách nào. Tôi thường kết thúc cần một số giao diện mà tôi không có một thực hiện.Java: Cách đánh giá một biểu thức EL - độc lập (bên ngoài bất kỳ khuôn khổ web nào) mà không cần triển khai giao diện?
Tôi có bản đồ các đối tượng và tôi muốn biểu thức chuỗi như Hello, ${person.name}
được đánh giá thành chuỗi.
Làm cách nào tôi có thể đạt được điều đó, sử dụng bất kỳ Commons EL, javax.el, OGNL, hoặc như vậy? Phải là một thư viện độc lập.
Và tôi biếtJava: using EL outside J2EE và đã xem JSTL/JSP EL (Expression Language) in a non JSP (standalone) context. Đó không phải là những gì tôi đang tìm kiếm.
Những gì tôi đang tìm kiếm là một ví dụ về những gì phụ thuộc thêm vào, và sau đó làm thế nào để khởi tạo một phân tích cú pháp mà sẽ có:
private static String evaluateEL(String expr, Map<String, String> properties);
và cho phép tôi làm:
String greet = evaluateEL("Hello ${person.name}",
new HashMap(){{
put("person", new Person("Ondra"));
}}
);
Và Tôi cần nó để sử dụng một số giá trị hợp lý, ví dụ ""
trên null
thay vì ném NPE hoặc hơn.
Trong khi không chính xác EL, [FreeMarker] (http://freemarker.sourceforge.net/) có cú pháp và tính năng tương tự. – fge
Ngoài ra Velocity có cú pháp tương tự như EL. –
OGNL có thể là như vậy, nhưng trang web của họ không hoạt động với ATM. –