我正在尝试使用Twitter Bootstrap 2.0.2(http://twitter.github.com/bootstrap)使用Primefaces 3.2(也许它与JSF有关).
我已添加到starter-example(http://twitter.github.com/bootstrap/examples/starter-template.html)下拉菜单中,其中包含以下脚本<h:head>:
<script src="/resources/js/bootstrap.js"></script>
<script src="/resources/js/jquery-1.7.2.js"></script>
<script src="/resources/js/bootstrap-dropdown.js"></script>
Run Code Online (Sandbox Code Playgroud)
这在JSF页面上工作正常,但如果我添加一个简单的 p:dataTable
<p:dataTable var="i" value="#{testBean.list}">
<p:column>
<f:facet name="header"><h:outputText value="Item"/></f:facet>
<h:outputText value="#{i}"/>
</p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
下拉菜单不再有效.我想它与JavaScript有关,但不确定在哪里搜索这个bug.
我正在使用PrimeFaces 3.5和JSF 2.0.我想使用jQuery插件,所以我在我的webapp中包含了jQuery.
<h:head>
<h:outputScript name="js/jquery.min.js" />
<h:outputScript name="js/jquery-ui.js" />
</h:head>
Run Code Online (Sandbox Code Playgroud)
但是,在使用PrimeFaces组件时,我会收到类似未捕获的类型错误:
未捕获的TypeError:无法读取未定义的属性"长度"
未捕获的TypeError:对象[object Object]没有方法'autocomplete'
未捕获的TypeError:无法读取未定义的属性'keyCode'
未捕获的TypeError:this.jq.draggable不是函数
未捕获的TypeError:无法读取未定义的属性"LinearAxisRenderer"
未捕获的TypeError:对象[object Object]没有方法'fileupload'
未捕获的TypeError:this.jqEl.datetimepicker不是函数
等等.
这是怎么造成的,我该如何解决?
我需要在JSF模板页面中使用jQuery和jQuery UI,但是,Primefaces有自己的jQuery,它是按需加载的.即,如果<p:xxx>页面中没有标记,Primefaces将不会加载jQuery .
我可以有一个虚拟表单来包含所有必需的库,如下所示:
<h:form id="dummy" style="display: none;">
A Dummy Form.
<p:dataTable />
<p:column />
<p:commandLink />
<p:commandButton />
<p:dialog />
<p:fileUpload />
<p:tabView rendered="false">
<p:tab title="" />
</p:tabView>
<p:message for="dummy" />
<f:ajax event="click" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
虽然它有效,但还有更好的解决方案吗?