Проблема интеграции Spring WebFlow JSF 2.0 с f: setPropertyActionListener - PullRequest
0 голосов
/ 15 марта 2011

Я занимаюсь разработкой веб-приложения на основе примера booking-face (spring-webflow-2.3.0.RELEASE). Я хочу, чтобы часть моего приложения была в чистом JSF 2.0, но у меня есть серьезные проблемы с тегом <f:setPropertyActionListener>,Он не перенаправляет должным образом.

В примере с лицами бронирования я изменил файл faces-config.xml только следующим образом:

<?xml version='1.0' encoding='UTF-8'?>
<faces-config 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-facesconfig_2_0.xsd"
    version="2.0">

    <application>
        <message-bundle>JsfMessageResources</message-bundle>
        <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
    </application>

    <managed-bean>
        <managed-bean-name>viewJSF</managed-bean-name>
        <managed-bean-class>org.springframework.webflow.samples.booking.ViewJSF</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>prueba</property-name>
            <value>#{prueJSF}</value>
        </managed-property>
    </managed-bean>
</faces-config>

Файл My Facelet intro.xhtml:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.prime.com.tr/ui">
<f:view>
    <h:head>
        <ui:insert name="headIncludes"/>
    </h:head>
    <h:body>
        <div>
            <h:form> 
                <h:commandLink value="link">
                    <f:setPropertyActionListener value="hoho" target="#{viewJSF.funciona}" />
                </h:commandLink> 
            </h:form>  
        </div>
    </h:body>
</f:view>
</html>

Исключение, которое возникает, когда я нажимаю <h:commandLink />:

java.io.FileNotFoundException: /WEB-INF/WEB-INF/intro.xhtml Not Found in ExternalContext as a Resource
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:221)
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:262)
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:190)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:731)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:96)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
    at org.springframework.faces.mvc.JsfView.renderMergedOutputModel(JsfView.java:85)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Кроме того, URL в адресной строке браузера изменяется с http://localhost:8080/booking-faces/spring/intro на http://localhost:8080/booking-faces/WEB-INF/intro.xhtml

Моя структура папок:

-WEB-INF
--intro.xhtml

Я уже задавал этот вопрос на Spring WebFlow forum , но я не получил никакого ответа.

...