服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

jboss中myfaces与sitemesh的集成

  想要在myfaces项目中使用sitemesh, 结果发现jsf的标准ui没有问题,可使用了tomahawk的组件却显示不出来。是什么原因呢?  
  原来是因为tomahawk使用了filter(extensionsfilter)来实现,sitemesh也使用filter来实现(太优美了),这就存在一个谁先谁后的问题了。解决方法:
  首先,把sitemesh的filter map放到最后。然后把tomahawkr的extensionsfilter改为如下:
    <filter-mapping>
        <filter-name>myfacesextensionsfilter</filter-name>
        <url-pattern>/faces/myfacesextensionresource/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>myfacesextensionsfilter</filter-name>
        <url-pattern>*.faces</url-pattern>
    </filter-mapping>
  注意:/faces/myfacesextensionresource/*在上面,对应的也要修改myfaces的servlet-mapping,如下:
    <servlet-mapping>
        <servlet-name>faces servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
   
    <servlet-mapping>
        <servlet-name>faces servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
*.jsf这一项是要加的(我实际上只使用*.faces),不然过不去的。

扫描关注微信公众号