Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 如何将SpringWebFlow应用程序配置为使用Xslt呈现其视图状态_Spring Mvc_Xslt_Spring Webflow 2 - Fatal编程技术网

Spring mvc 如何将SpringWebFlow应用程序配置为使用Xslt呈现其视图状态

Spring mvc 如何将SpringWebFlow应用程序配置为使用Xslt呈现其视图状态,spring-mvc,xslt,spring-webflow-2,Spring Mvc,Xslt,Spring Webflow 2,我希望我的SpringWebFlow应用程序使用XSLT呈现其视图。我通过配置一个XSLTviewresolver和一个控制器方法(返回一个已经准备好的xml作为源),成功地获得了一个纯Spring MVC应用程序,以使用xslt进行呈现 但我不知道如何将其应用于webflow应用程序。 我添加了XSLT视图解析器的配置,并将视图状态设置为xsl,然后调用控制器方法,在视图状态的呈现中返回xml源。到目前为止,我只将xsl作为输出返回,而不是转换后的xml,甚至是原始xml 编辑 flow.xm

我希望我的SpringWebFlow应用程序使用XSLT呈现其视图。我通过配置一个XSLTviewresolver和一个控制器方法(返回一个已经准备好的xml作为源),成功地获得了一个纯Spring MVC应用程序,以使用xslt进行呈现

但我不知道如何将其应用于webflow应用程序。 我添加了XSLT视图解析器的配置,并将视图状态设置为xsl,然后调用控制器方法,在视图状态的呈现中返回xml源。到目前为止,我只将xsl作为输出返回,而不是转换后的xml,甚至是原始xml

编辑 flow.xml-full

<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
  <view-state id="messageChoice" view="start1">
   <transition on="chooseA" to="messageA"/>
   <transition on="chooseB" to="messageB"/>
      </view-state> 
      <view-state id="messageA" view="messageA">
       <transition on="start" to="messageChoice"/>
      </view-state> 
      <view-state id="messageB" view="xsltview">
       <on-render>
        <evaluate expression="sampleController.viewXSLT(externalContext.getNativeRequest(),externalContext.getNativeResponse())" result="requestScope.xmlSource"/>
       </on-render>
       <transition on="start" to="messageChoice"/>
      </view-state>
      <end-state id="finish"/>
    </flow>
编辑 流配置已满

<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
  <context:annotation-config />
  <context:component-scan base-package="com.genkey.derek" />
  <mvc:view-controller path="/start" />
  <mvc:view-controller path="/messageHome" />
  <mvc:resources location="/" mapping="/resources/**" />
  <faces:resources />
  <bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
   <property name="flowRegistry" ref="flowRegistry" />
   <property name="order" value="3" />
 </bean>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<bean id="xsltviewresolver" class="org.springframework.web.servlet.view.xslt.XsltViewResolver">
 <property name="order" value="1"/>
 <property name="sourceKey" value="xmlSource"/>
 <property name="viewClass" value="org.springframework.web.servlet.view.xslt.XsltView"/>
 <property name="viewNames">
  <array>
   <value>xsltview</value>
  </array>
 </property>
 <property name="prefix" value="/WEB-INF/xsl/" />
 <property name="suffix" value=".xsl" />
</bean>
<bean id="viewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator"> 
 <property name="viewResolvers"> 
  <list> 
   <ref bean="xsltviewresolver"/> 
   <ref bean="faceletsViewResolver" /> 
  </list> 
 </property> 
</bean>
<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/pages/" />
  <property name="suffix" value=".xhtml" />
  <property name="order">
   <value>2</value>
  </property>
</bean>
 <bean class="org.springframework.faces.webflow.JsfFlowHandlerAdapter">
  <property name="flowExecutor" ref="flowExecutor" />
 </bean>
 <webflow:flow-executor id="flowExecutor">
  <webflow:flow-execution-listeners>
   <webflow:listener ref="facesContextListener"/>
  </webflow:flow-execution-listeners>
 </webflow:flow-executor>
 <webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" >
 <webflow:flow-location  path="WEB-INF/flows/startFlow.xml"/>
 </webflow:flow-registry>
 <faces:flow-builder-services id="flowBuilderServices" view-factory-creator="viewFactoryCreator" development="true" />
 <bean id="facesContextListener" class="org.springframework.faces.webflow.FlowFacesContextLifecycleListener"/>
</beans>


在webflow配置中,您是如何定义视图解析器的?显示完整流配置。@Prasad我添加了视图解析ROK您在flow builder服务配置的“视图工厂创建者”属性中指定了什么?@Prasad我没有设置“视图工厂创建者”属性。。我以为默认值是MvcViewFactoryCreator。。这样就可以处理与XSLTviewResolver..请随时填补任何知识空白,以检查以下内容:
<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
  <context:annotation-config />
  <context:component-scan base-package="com.genkey.derek" />
  <mvc:view-controller path="/start" />
  <mvc:view-controller path="/messageHome" />
  <mvc:resources location="/" mapping="/resources/**" />
  <faces:resources />
  <bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
   <property name="flowRegistry" ref="flowRegistry" />
   <property name="order" value="3" />
 </bean>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<bean id="xsltviewresolver" class="org.springframework.web.servlet.view.xslt.XsltViewResolver">
 <property name="order" value="1"/>
 <property name="sourceKey" value="xmlSource"/>
 <property name="viewClass" value="org.springframework.web.servlet.view.xslt.XsltView"/>
 <property name="viewNames">
  <array>
   <value>xsltview</value>
  </array>
 </property>
 <property name="prefix" value="/WEB-INF/xsl/" />
 <property name="suffix" value=".xsl" />
</bean>
<bean id="viewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator"> 
 <property name="viewResolvers"> 
  <list> 
   <ref bean="xsltviewresolver"/> 
   <ref bean="faceletsViewResolver" /> 
  </list> 
 </property> 
</bean>
<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/pages/" />
  <property name="suffix" value=".xhtml" />
  <property name="order">
   <value>2</value>
  </property>
</bean>
 <bean class="org.springframework.faces.webflow.JsfFlowHandlerAdapter">
  <property name="flowExecutor" ref="flowExecutor" />
 </bean>
 <webflow:flow-executor id="flowExecutor">
  <webflow:flow-execution-listeners>
   <webflow:listener ref="facesContextListener"/>
  </webflow:flow-execution-listeners>
 </webflow:flow-executor>
 <webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" >
 <webflow:flow-location  path="WEB-INF/flows/startFlow.xml"/>
 </webflow:flow-registry>
 <faces:flow-builder-services id="flowBuilderServices" view-factory-creator="viewFactoryCreator" development="true" />
 <bean id="facesContextListener" class="org.springframework.faces.webflow.FlowFacesContextLifecycleListener"/>
</beans>