Проблемы при обновлении Jsf1.0 до Jsf2.0 - PullRequest
0 голосов
/ 30 ноября 2010

При обновлении приложения до Jsf2.0, созданного в Spring3 и Jsf1.0 (myfaces), я столкнулся с некоторыми проблемами, упомянутыми ниже.

Я выполнил следующие шаги для обновления приложения.

Из IntelliJ IDEA:

* Open project settings/Monitor/Dependencies
*  Removed facelet*jar, el*.jars, myfaces* jars from project 
*  Added jsf2.0.x ri mojarra jars and tomahawk1.1.9.jar  
*  Open project settings/monitor/web settings
*  Under "modules and libs to package": remove el-.jars,facelet-jar and myfaces jars
*  Added jsf2.0.x ri mojarra jars and tomahawk1.1.9.jar  
*  Removed erroneous class usages from our classes Lists.java and RegExValidator.java. In Lists.java, replace import with org.apache.commons.lang.LocaleUtils. In RegExValidator, replace import with "org.apache.myfaces.shared_tomahawk.util.MessageUtils".

Редактировать Web.xml:

*  facelets.VIEW_MAPPINGS -> javax.faces.FACELETS_VIEW_MAPPINGS
*  facelets.LIBRARIES -> javax.faces.FACELETS_LIBRARIES
* Change Faces Servlet to <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
* Change header to:

  <web-app version="2.5"
      xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

Редактировать лица-config.xml:

*  Add header:

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"

          version="2.0">

*  Remove line "<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>"

После выполнения всех указанных выше шагов выдается следующая ошибка:

Для атрибута actionListener задано литеральное значение, определенное как отложенный метод с возвращаемым типом void.JSP.2.3.4 не разрешает литеральные значения в этом случае

На самом деле выражения Jsf2.0 el # {myBean.property} не получают разрешение, поэтому он показывает вышеуказанную ошибку.

Кто-нибудь может подсказать мне, чего не хватает, чтобы я мог успешно перенести приложение на Jsf2.0

Заранее спасибо, Диллон

Ответы [ 2 ]

0 голосов
/ 21 марта 2014

Обновление web-app version="3.0" до последней версии. Ранее версия веб-приложения была 2.5, в то время я получил ошибку, после обновления проблема до 3.0 решена.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name> 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
0 голосов
/ 26 января 2011

Литеральное значение было указано для атрибута actionListener, который определен как отложенный метод с возвращаемым типом void.В этом случае JSP.2.3.4 не допускает литеральные значения

Эта ошибка проверки EL означает, что вы где-то

<h:commandButton actionListener="somestring" />

вместо

<h:commandButton actionListener="#{someBean.actionListener}" />

или

<h:commandButton action="somestring" />

(вместо h:commandButton вы также можете прочитать любой UICommand компонент, такой как h:commandLink)

Просто найдите / найдитеВиновник в коде и исправь его соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...