Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让JSF呈现符合XHTML1.0的严格要求?_Jsf_Jsf 2_Doctype_Xhtml 1.0 Strict - Fatal编程技术网

如何让JSF呈现符合XHTML1.0的严格要求?

如何让JSF呈现符合XHTML1.0的严格要求?,jsf,jsf-2,doctype,xhtml-1.0-strict,Jsf,Jsf 2,Doctype,Xhtml 1.0 Strict,我需要开发一个web应用程序,它必须符合“Stanca法案”(Legge Stanca)。到目前为止,我已经使用了jsf2.0(Mojarra)+primefaces 3.2,但在使用时存在验证问题 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 特别是对于空表单页面,生成以下html代码: <form

我需要开发一个web应用程序,它必须符合“Stanca法案”(Legge Stanca)。到目前为止,我已经使用了jsf2.0(Mojarra)+primefaces 3.2,但在使用时存在验证问题

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

特别是对于空表单页面,生成以下html代码:

<form id="j_idt16" name="j_idt16" method="post" action="/econsob/faces/prova_stanca.xhtml" enctype="application/x-www-form-urlencoded">
    <input type="hidden" name="j_idt16" value="j_idt16" />
    <input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="-8952155502993391596:-7459269746161777412" autocomplete="off" />
</form>

未通过验证,因为:

  • 所需doctype不支持表单标记中的属性名称 斯坦卡法案
  • 文档类型此处不允许元素“输入”(仅在 (表格)
  • doctype不支持属性自动完成

有没有办法解决这个问题?jsf生成的页面是否可能没有使用严格的验证?

标准jsf HTML呈现程序是根据XHTML 1.0设计的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

但是,您可以始终使用HTML5 doctype

<!DOCTYPE html>

它比XHTML1.0StrictDocType更灵活,并且仍然强制浏览器处于标准模式

如果确实打算使用XHTML 1.0 Strict,则需要设置以下上下文参数(仅限Mojarra):


com.sun.faces.autoCompleteOffOnViewState
假的
com.sun.faces.enableViewStateIdRendering
假的

和/或修改相应组件的渲染器。当某些过度热心的浏览器通过某种自动完成方式修改视图状态值时,您只会面临查看过期异常的风险。

谢谢!不幸的是,问题仍然存在。使用上下文参数,我能够解决自动完成的问题,但不能解决前两项,因此cocument不会验证。你知道吗?
<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>