扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
想要在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),不然过不去的。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者