Что содержит пакет com.sun.el? - PullRequest
3 голосов
/ 22 ноября 2010

Это просто API, определенный Java, который будет реализован, скажем, серверами, или JRE также включает в себя реализацию?

Дело в том, что я пытался объединить две строки, используя '+' намоя страница JSF, но это бросило NumberFormatException.Кажется, он пытался разобрать мои строки с помощью Long.parseLong ().

Я был удивлен, увидев этот пакет в трассировке стека, так как я думал, что эти выражения являются выражениями Groovy.Это, конечно, не Groovy, но какой-то другой EL.

Я использую сервер Weblogic.

1 Ответ

6 голосов
/ 22 ноября 2010

Содержит реализацию Sun API javax.el, которая указана в спецификации EL . Этот API является частью Java EE, а не Java SE. От разработчиков требуется предоставить конкретную реализацию абстрактного API, чтобы все работы, определенные API, были выполнены. Java EE - это одна большая абстрактная спецификация. Сервлет-контейнеры / серверы приложений, такие как Weblogic, Tomcat, Glassfish и т. Д., Предлагают конкретные реализации.

Что касается вашей реальной проблемы, нет, вы действительно не можете объединить строки в EL, используя такой оператор +. Оператор + в EL предполагает, что обе стороны равны Number, для круглых чисел это Long. Это указано в спецификации EL.

Однако вы можете просто использовать несколько выражений, как показано ниже, для «конкататирования» строк.

<h:outputText value="#{user.firstName} #{user.lastName}" />
...