Я занимаюсь разработкой веб-приложения на основе примера 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 , но я не получил никакого ответа.