[SPRING] jsf 2.0으로 스프링 웹 플로우를 구성하는 방법은 무엇입니까?
SPRINGjsf 2.0으로 스프링 웹 플로우를 구성하는 방법은 무엇입니까?
JSF2.0을 스프링 웹 플로우의 뷰 기술로 통합하는 데 문제가 있습니다. 나는 거의 "거의"작동하도록 만들었지 만 남은 유일한 것은 JSF2.0에 대한 ajax 지원을 구성하는 것입니다.
Ajax 요청이 보내지면 서버의 응답이 수신되지만 응답은 구성 요소의 다시 렌더링을 트리거하지 않습니다.
문제를 해결하는 데 도움이되는 몇 가지 단서 :
구성 파일이 필요한 경우 - 질문에 게시합니다.
어떤 도움을 주셔서 감사합니다. 이것이 전체 기술 스택을 사용하는 것을 막는 문제라고 보입니다.
해결법
-
==============================
1.1 단계 web.xml
1 단계 web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>JSF2.0 with Spring webflow</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/web-application-config.xml </param-value> </context-param> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Production</param-value> </context-param> <context-param> <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name> <param-value>1</param-value> </context-param> <filter> <filter-name>charEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>charEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>facesServlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>facesServlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>facesServlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>facesServlet</servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>facesServlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <servlet> <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value></param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> <url-pattern>/spring/*</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <listener> <listener-class>com.sun.faces.config.ConfigureListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
2 단계 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"> </faces-config>
3 단계 : 3 webflow-config.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:webflow="http://www.springframework.org/schema/webflow-config" xmlns:faces="http://www.springframework.org/schema/faces" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd http://www.springframework.org/schema/faces http://www.springframework.org/schema/faces/spring-faces-2.2.xsd"> <!-- Executes flows: the central entry point into the Spring Web Flow system --> <webflow:flow-executor id="flowExecutor"> <webflow:flow-execution-repository max-executions="1" /> <webflow:flow-execution-attributes> <webflow:always-redirect-on-pause value="true"/> </webflow:flow-execution-attributes> <webflow:flow-execution-listeners> <webflow:listener ref="securityFlowExecutionListener"/> <webflow:listener ref="facesContextListener"/> </webflow:flow-execution-listeners> </webflow:flow-executor> <!-- The registry of executable flow definitions --> <webflow:flow-registry id="flowRegistry" flow-builder-services="facesFlowBuilderServices" base-path="/WEB-INF/flows"> <webflow:flow-location-pattern value="/**/*-flow.xml" /> </webflow:flow-registry> <!-- Configures the Spring Web Flow JSF integration --> <faces:flow-builder-services id="facesFlowBuilderServices" development="true" /> <!-- Installs a listener to apply Spring Security authorities --> <bean id="securityFlowExecutionListener" class="org.springframework.webflow.security.SecurityFlowExecutionListener"/> <!-- Installs a listener that creates and releases the FacesContext for each request. --> <bean id="facesContextListener" class="org.springframework.faces.webflow.FlowFacesContextLifecycleListener"/> </beans>
단계 : 4 webmvc-config.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:faces="http://www.springframework.org/schema/faces" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/faces http://www.springframework.org/schema/faces/spring-faces-2.4.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"> <faces:resources /> <!-- Maps request URIs to controllers. Here we have two kinds of flows one is login flow and another is main flow --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <value> /main=flowController </value> </property> <property name="defaultHandler"> <!-- Selects view names to render based on the request URI: e.g. /main selects "main" --> <bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController" /> </property> </bean> <!-- it is used to handle the flow control Adaptor in 2.3.0. This will come from spring framework.web.servlet3.2.1 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> <!-- Handles requests mapped to the Spring Web Flow system and ajaxHandler. after security we need to enable the ajax for that we need to write one property i.e ajaxHandler --> <bean id="flowController" class="org.springframework.webflow.mvc.servlet.FlowController"> <property name="flowExecutor" ref="flowExecutor" /> <property name="ajaxHandler"> <bean class="org.springframework.faces.webflow.JsfAjaxHandler"/> </property> </bean> <!-- Maps logical view names to Facelet templates in /WEB-INF (e.g. 'search' to '/WEB-INF/search.xhtml' --> <bean id="faceletsViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.faces.mvc.JsfView"/> <property name="prefix" value="/WEB-INF/" /> <property name="suffix" value=".xhtml" /> </bean> <bean id="facesContextListener" class="org.springframework.faces.webflow.FlowFacesContextLifecycleListener" /> </bean> </beans>
-
==============================
2.최근 스프링 웹 플로우 프로젝트에서 JSF 1에서 JSF 2로 마이그레이션했습니다. 나중에 나는 아약스가 작동하지 않는다는 것을 알아 냈다. webmvc-config.xml에이 두 bean을 설정했습니다.
최근 스프링 웹 플로우 프로젝트에서 JSF 1에서 JSF 2로 마이그레이션했습니다. 나중에 나는 아약스가 작동하지 않는다는 것을 알아 냈다. webmvc-config.xml에이 두 bean을 설정했습니다.
첫 번째 빈이 문제였다.
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter"> <property name="flowExecutor" ref="flowExecutor"/> </bean> <bean class="org.springframework.faces.webflow.JsfFlowHandlerAdapter"> <property name="flowExecutor" ref="flowExecutor" /> </bean>
둘 다 가질 수 없습니다. JsfFlowHandlerAdapter 만 가지고 있는지 확인하십시오.
<bean class="org.springframework.faces.webflow.JsfFlowHandlerAdapter"> <property name="flowExecutor" ref="flowExecutor" /> </bean>
다음은 내 프로젝트의 일부 프레임 워크 버전입니다.
<spring.version>3.2.13.RELEASE</spring.version> <jsf.version>2.2.8-02</jsf.version> <org.springframework.webflow>2.4.0.RELEASE</org.springframework.webflow> <org.springframework.security.version>3.2.4.RELEASE</org.springframework.security.version>
from https://stackoverflow.com/questions/4825904/how-to-configure-spring-webflow-with-jsf-2-0 by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring + Hibernate + JTA - HibernateTransactionManager 또는 JTATransactionManager (0) | 2019.04.27 |
---|---|
[SPRING] Spring 3.0 / AOP / Aspectj : autoproxy가 getConnection ()에 대한 모든 호출을 가로 채기 (0) | 2019.04.27 |
[SPRING] 봄 OAUTH2 - 액세스 토큰 만료 시간 (0) | 2019.04.27 |
[SPRING] 봄 MVC 400 나쁜 요청 아약스 (0) | 2019.04.27 |
[SPRING] Autowired .. 하나 이상? (0) | 2019.04.27 |