Bal*_*usC 76
该<f:view>
只如果要明确指定有用/覆盖任何可用的属性如locale
,encoding
,contentType
,等还是要附加一些阶段监听器.例如
<f:view locale="#{user.locale}" encoding="UTF-8" contentType="text/html">
Run Code Online (Sandbox Code Playgroud)
如果不指定,那么理智JSF默认只会被用来代替,这分别是UIViewRoot#getLocale()
,UTF-8
与最接近的匹配Accept
请求头.需要注意的是,Accept
请求标头的最接近匹配并不总是完全正确.有时它会导致application/xhtml+xml
因为.xhtml
Facelets中存在扩展名而且Web浏览器没有被配置为text/html
默认将其解释为(如MSIE).您真的希望通过明确设置它来避免这种错误的内容类型text/html
.
请注意,将其放在模板中的位置无关紧要.你甚至可以把它放在模板客户端作为直接的孩子<ui:define>
.然而,规范的地方是直接的孩子,<html>
因此包裹着<h:head>
和<h:body>
.这也是它在遗留JSP中实际需要的方式.在Facelets中,它是可选的并且被视为元数据.
该<f:subview>
会创建另一个命名容器上下文.当您想要在同一视图根中重复使用包含多个固定组件ID的包含文件时,这尤其有用,否则您将获得重复的组件ID错误.但是,由于JSF 2.0这样的包含文件可以更好地成为一个复合组件,它本身已经是一个命名容器.
如果您没有指定它,那么如果您不在视图中多次重复使用具有相同ID的组件,则不会造成损害.
归档时间: |
|
查看次数: |
50513 次 |
最近记录: |