【发布时间】:2013-10-14 06:02:58
【问题描述】:
我正在使用 JSF 2。
对于其中一个页面,它需要包含一个类似于以下行的页面:
domain/subdomain/cms/[userspecified_code].html
我使用了 ui:include 标签来获取这个文件。它适用于存在的文件,但对于不存在的文件,它会抛出 FileNotFoundException 将整个页面呈现为错误页面。
是否有 ui:include 标记的替代解决方案可以跳过/记录文件错误,并且只显示一个空白部分?这样可以最大限度地减少对用户的干扰(包含的文件只是页面的一小部分,如果没有匹配的文件,我宁愿不显示任何内容)。 我能想到的一种方法是加载 ajax 部分,所以如果出现错误,那将是 javascript 错误而不是服务器错误,但是有没有更优雅/更简单的方法呢?
这里是我目前拥有的 xhtml:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
Lots of other html....
<ui:include src="domain/subdomain/cms/#{userspecified_code}.html"/>
Lots of other html....
</html>
编辑
感谢您的所有回答。我正在寻找一种不需要我自己添加所有文件检查逻辑的解决方案。
【问题讨论】:
-
感谢您到目前为止的回答,我正在寻找一个自动完成而无需编写代码逻辑来检查自己的解决方案。