带有Facelets视图的Spring MVC

时间:2013-03-15 16:43:13

标签: jsf spring-mvc facelets

我尝试了一个使用两个“DispatcherServlets”来使用facelets作为Spring MVC Web应用程序的视图技术的愚蠢解决方案,它很好看,facelets页面可以从控制器获取模型,问题是当facelets时页面发送一个表单对象,这是这个Web应用程序的设置方式:

的web.xml:

<servlet>
    <servlet-name>Example</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/mvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Example</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

使用此配置,此控制器的方法正常工作:

@RequestMapping(value = "/garage", method = RequestMethod.GET)
public ModelAndView get(){
       ModelAndView mav = new ModelAndView() ;
       mav.setViewName("/faces/garage.xhtml") ;
       mav.addObject("listOfCars", carService.getCarList()) ;
       mav.addObject("hello", "Hello World From Spring Controller") ;
       return mav ;  
}

此应用程序中的问题是,在提交表单时,jsf标记始终尝试解析“faces / *。xhtml”视图。 像这样的解决方案根本不会改变任何东西。

  <h:form>
      <p>
         <h:inputText                    
             id="carMarque"
             title="Quelle est la marque du nouveau véhicule"
             value="#{NewCar.marque}">
             </h:inputText>                  
             <h:commandButton id="submit" value="Ajouter" action="/garage/new" />
      </p>  
 </h:form> 

它最终以ServletException结束

 javax.servlet.ServletException: /newcar.xhtml @22,50 value="#{NewCar.marque}": Target Unreachable, identifier 'NewCar' resolved to null

我不知道是否有办法解决这个问题。

0 个答案:

没有答案