1

아파치 타일로 웹 플로우를 구성 할 수 없습니다. 첫 번째보기가 표시되지만 두 번째보기는Spring WebFlow 2 및 Apache Tiles 3 구성. 두 번째보기가 작동하지 않습니다.

입니다. HTTP 상태 404 - 요청한 리소스를 사용할 수 없습니다.

springmvc - 디스패처-servlet.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:context="http://www.springframework.org/schema/context" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xmlns:webflow-config="http://www.springframework.org/schema/webflow-config" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd 
    http://www.springframework.org/schema/webflow-config 
http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.4.xsd"> 

    <context:component-scan base-package="com.rog.webshop.controller"/> 
    <mvc:resources mapping="/resources/**" location="/resources/"/> 
    <!--<mvc:default-servlet-handler default-servlet-name="myCustomDefaultServlet"/>--> 
    <mvc:annotation-driven conversion-service="conversionService" enable-matrix-variables="true" validator="validator"/> 


    <!--TILES --> 
    <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 
     <property name="definitions"> 
      <list> 
       <value>/WEB-INF/tiles.xml</value> 
      </list> 
     </property> 
    </bean> 

    <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" 
        value="org.springframework.web.servlet.view.tiles3.TilesView"> 
     </property> 
     <property name="order" value="-2"/> 
    </bean> 







    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> 
     <property name="validationMessageSource" ref="messageSource"/> 
    </bean> 

    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 
     <property name="basename" value="messages"/> 
    </bean> 

    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> 

     <property name="converters"> 
      <list> 
       <bean id="roleToUserProfile" class="com.rog.webshop.util.RoleToUserProfileConverter"/> 
       <bean id="categoryToProduct" class="com.rog.webshop.util.CategoryConverter"/> 
      </list> 
     </property> 
    </bean> 


    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     <property name="maxUploadSize" value="10240000"/> 
    </bean> 






    <!--WEBFLOW CONFIG--> 
    <webflow-config:flow-executor id="flowExecutor" 
            flow-registry="flowRegistry"/> 
    <webflow-config:flow-builder-services id="flowBuilderServices" 
              validator="validator" 
              view-factory-creator="mvcViewFactoryCreator"/> 
    <webflow-config:flow-registry id="flowRegistry" 
            base-path="WEB-INF/flows" 
            flow-builder-services="flowBuilderServices"> 
     <webflow-config:flow-location path="/checkout/checkout-flow.xml" 
             id="checkout"/> 
    </webflow-config:flow-registry> 

    <!-- Configures Web Flow to use Tiles to create views for rendering; Tiles allows for applying consistent layouts to your views --> 
    <bean id="mvcViewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator"> 
     <property name="viewResolvers" ref="tilesViewResolver" /> 
    </bean> 
    <bean id="flowHandlerMapping" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping"> 
     <property name="flowRegistry" ref="flowRegistry"/> 
     <property name="order" value="-1"/> 
    </bean> 
    <bean id="flowHandlerAdapter" class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter"> 
     <property name="flowExecutor" ref="flowExecutor"/> 
    </bean> 







    <!-- Configure to plugin JSON as request and response in method handler --> 
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
     <property name="messageConverters"> 
      <list> 
       <ref bean="jsonMessageConverter"/> 
      </list> 
     </property> 
    </bean> 
    <!-- Configure bean to convert JSON to POJO and vice versa --> 
    <bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
    </bean> 


</beans> 

내 흐름

<?xml version="1.0" encoding="UTF-8"?> 
<flow xmlns="http://www.springframework.org/schema/webflow" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/webflow 
          http://www.springframework.org/schema/webflow/spring-webflow.xsd"> 

    <var name="order" class="com.rog.webshop.model.order.Order" /> 

    <action-state id="addCartToOrder"> 
     <evaluate expression="cartService.validate(requestParameters.cartId)" 
        result="order.cart" /> 
     <transition to="InvalidCartWarning" 
        on-exception="com.rog.webshop.exception.InvalidCartException" /> 
     <transition to="collectCustomerInfo" /> 
    </action-state> 

    <view-state id="collectCustomerInfo" view="collectCustomerInfo" model="order"> 
     <!--<binder>--> 
      <!--<binding property="customer.customerId" required="true" />--> 
      <!--<binding property="customer.name" required="true" />--> 
      <!--<binding property="customer.billingAddress" required="true" />--> 
      <!--<binding property="customer.phoneNumber" required="true" />--> 
     <!--</binder>--> 
     <transition on="customerInfoCollected" to="collectShippingDetail" /> 
    </view-state> 

    <view-state id="collectShippingDetail" view="collectShippingDetail" model="order"> 
     <transition on="shippingDetailCollected" to="orderConfirmation" /> 
     <transition on="backToCollectCustomerInfo" to="collectCustomerInfo" /> 
    </view-state> 

    <view-state id="orderConfirmation" view="orderConfirmation"> 
     <transition on="orderConfirmed" to="processOrder" /> 
     <transition on="backToCollectShippingDetail" to="collectShippingDetail" /> 
    </view-state> 

    <action-state id="processOrder" > 
     <evaluate expression="orderService.saveOrder(order)" result="order.orderId"/> 
     <transition to="thankCustomer" /> 
    </action-state> 

    <view-state id="InvalidCartWarning" view="InvalidCartWarning"> 
     <transition to="endState"/> 
    </view-state> 

    <view-state id="thankCustomer" model="order" view="thankCustomer"> 
     <transition to="endState"/> 
    </view-state> 

    <end-state id="endState"/> 

    <end-state id="cancelCheckout" view = "checkOutCancelled.jsp"/> 

    <global-transitions> 
     <transition on = "cancel" to="endState" /> 
    </global-transitions> 

</flow> 
나는 흐름에 사용하고있는 뷰의 두

타일 정의 :

<definition name="collectCustomerInfo" extends="shop.base"> 
    <put-attribute name="title" value="Shop homepage"></put-attribute> 
    <put-attribute name="body" value="/WEB-INF/flows/checkout/collectCustomerInfo.jsp"></put-attribute> 
</definition> 


<definition name="collectShippingDetail" extends="shop.base"> 
    <put-attribute name="title" value="Shop homepage"></put-attribute> 
    <put-attribute name="body" value="/WEB-INF/flows/checkout/collectShippingDetail.jsp"></put-attribute> 
</definition> 

이 내가 두 번째 JSP에서 (collectCustomerInfo에서 collectShippingDetail

   <div class="form-group"> 
       <div class="col-lg-offset-2 col-lg-10"> 
        <input type="submit" id="btnAdd" class="btn btn-primary" 
         value="Add" name="_eventId_customerInfoCollected" /> 
        <button id="btnCancel" class="btn btn-default" name="_eventId_cancel">Cancel</button> 
       </div> 
      </div> 
+0

예외의 스택 추적을 게시 할 수 있습니까? – rptmat57

+0

IDE에 오류가 없습니다. 브라우저 콘솔에 다음과 같이 입력하면됩니다. http : // localhost : 8080/WEB-INF/views/definitions/layout.jsp? eexecution = e1s1 리소스를로드하지 못했습니다. 서버가 404()의 상태로 응답했습니다. – Artur

+0

리디렉션 후 해당 URL이 있습니까? ''태그가 무엇입니까? – dbreaux

답변

0

에 첫 번째보기의 전환을 보여주고 어떻게 사용해보십시오 :

<bean id="tilesViewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.webflow.mvc.view.FlowAjaxTiles3View"/> 
</bean> 

을하고 다른를 얻을 수 있는지 확인 결과

+0

같은 결과가 있습니다. IDE에 오류가 없습니다. 브라우저 콘솔에 다음과 같이 입력하십시오 : 'http : // localhost : 8080/WEB-INF/views/definitions/layout.jsp? execution = e1s1 리소스를로드하지 못했습니다 : 서버가 404()'상태로 응답했습니다. – Artur

0

수도 있습니다.

<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView">   
    </property> 
    <property name="order" value="0" /> 
</bean> 

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> 

<bean id="tilesConfigurer" 
     class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles.xml</value> 
     </list> 
    </property> 
</bean>