我一直在使用JSF2.0 TomEE 1.7.3开发一个网站。 在我提出的最后一个问题中:
What are the recommended JSF dependencies with TomEE1.7.x?
我得到了建议并决定从GlassFish(Mojarra)Faces迁移到myFaces,因为myFaces是TomEE的标准JSF实现。
然后我意识到" OmniFaces v1.8.3 Form"没有使用" style"渲染css类属性如果我使用TomEE的默认myFaces,那么" styleClass"它与Mojarra一起工作得很好,但现在我的HTML布局坏了,我必须解决它。
我使用的原因" OmniFaces Form"是的,我真的想使用includeRequestParams="true"
功能,这适用于Mojarra和myFaces。
我的xhtml看起来像吼叫:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:o="http://omnifaces.org/ui"
>
<h:body>
<ui:composition template="templates/common.xhtml">
<ui:define name="content">
<o:form prependId="false" styleClass="form-horizontal" includeRequestParams="true">
<!-- some inputText, labels, and buttons here -->
</o:form>
</ui:define>
</ui:composition>
</h:body>
</html>
我在HTML中得到的是:
<form id="j_id_1k" name="j_id_1k" method="post" action="/foo.xhtml">
class="form-horizontal"
未呈现。
我错过了什么吗? xmlns是错误还是已弃用?
或者它只是模块之间的不一致而我无能为力呢?
或者是否有等同于includeRequestParams
的东西?
我尝试过这样的事情来附加css类以使用javascript形成标记(我知道这不是一个好方法):
(function() {
var forms = document.forms;
for (var i = 0; i < forms.length; i++){
if (forms[i].id !== "headerForm"){
forms[i].class = "form-horizontal";
}
}
})();
但它没有修复布局,可能是因为css样式附加到表单内部的对象,而不是表单本身(我使用css引导程序)。
请帮帮我!谢谢。
答案 0 :(得分:2)
<o:form>
这是一个错误。它initially从UIForm
类延伸,但它并没有定义所有非常见属性。我fixed从HtmlForm
延伸而来,现在它也适用于MyFaces。它已于今天2.3-SNAPSHOT提供。