8

This is what I have in the output HTML document (produced by JSF 2.0/Mojarra 2.0.3):

<input type="hidden" name="javax.faces.ViewState" 
id="javax.faces.ViewState" value="4267906931114993858:-6309146738430577631"
autocomplete="off" />

My document should be XHTML 1.1 compliant, where attribute autocomplete is not valid and id attribute is duplicated over all forms. How to instruct JSF to produce everything strictly compliant to XHTML?

4

5 回答 5

3

看。

 <context-param>
   <param-name>com.sun.faces.autoCompleteOffOnViewState</param-name>
   <param-value>false</param-value>
 </context-param>

 <context-param>
   <param-name>com.sun.faces.enableViewStateIdRendering</param-name>
   <param-value>false</param-value>
 </context-param>
于 2012-01-20T18:00:00.883 回答
2

如果 ID javax.faces.ViewState 是 Oracle 无法修复的错误,则非唯一用途。他们已经关闭了这些票。没有解决方法。

于 2011-04-12T12:29:58.883 回答
1

如何指示 JSF 生成严格符合 XHTML 的所有内容?

这不是用一个简单的标志“指示”JSF 实现的问题。这是必须不断检查的东西,因此只有在项目认为重要时才有可能。XHTML strict 强加了很多限制,因此一般认为不值得支持 - 请参阅此错误。另请注意,您使用的任何组件库必须支持它。

使用 XHTML 1.0 Transitional 会带来更多好运——我可以确认 MyFaces 确实产生了有效的 XHTML 1.0 Transitional(一旦将上下文参数 org.apache.myfaces.RENDER_VIEWSTATE_ID 设置为 false)。

于 2011-03-01T08:52:53.370 回答
1

这个问题有一个解决方案,它是在 JSF 的 1.2_14 版本中创建的。我认为这个问题与 Firefox 在隐藏字段的重置事件(输入类型 = 重置)期间的操作方式有关。存在一个问题,即隐藏字段上的客户端 viewState 获得不一致的状态。这个问题的解决方案是以严格的方式禁用自动完成(这不符合 XHTML)。最有趣的是,直到 1.2_14 几乎每个人都生活在这个潜在的错误中。因此,JSF-RI 实现(Mojarra 项目)允许开发人员使用可以在 web.xml 中编辑的参数禁用此选项,并且不再打印此自动完成功能。

<context-param>
    <description>Put your description here :)</description>
    <param-name>com.sun.faces.autoCompleteOffOnViewState</param-name>
    <param-value>false</param-value>
</context-param>

使用像 JSF 这样的基于组件的框架来生成有效的 XHTML 页面确实很困难,但至少存在解决这个问题的方法。

于 2011-10-26T16:05:14.883 回答
0

禁用 ViewState 隐藏输入字段不是一个好主意autocomplete="off",因为这样 Firefox 不会在页面刷新时刷新 ViewState-Id。这会导致无法使用的 JSF 表单和功能。

有关详细信息,请参阅帖子。

于 2015-02-13T12:54:15.167 回答