Tou*_*umi 6 jsf primefaces jsf-2.3
我在 JSF2.3 中使用 primefaces
这是我的依赖项的方式
dependencies {
providedCompile 'javax.servlet:javax.servlet-api:4.0.0'
compile group: 'javax.faces', name: 'javax.faces-api', version: '2.3'
compile group: 'org.glassfish', name: 'javax.faces', version: '2.3.3'
compile 'javax.servlet:jstl:1.2'
compile 'org.jboss.weld.servlet:weld-servlet:2.4.5.Final'
compile group: 'org.primefaces', name: 'primefaces', version: '6.2'
}
Run Code Online (Sandbox Code Playgroud)
我的 jsf 文件非常基础
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
</h:head>
<f:view>
<h:outputLabel value="Hello, world"/>
<h:form>
<p:selectOneMenu value="#{testView.chosen}"
style="width:200px">
<f:selectItem itemLabel="Select listing template"/>
<f:selectItems value="#{testView.list}"/>
<p:ajax event="change" process="@this" update="@all"/>
</p:selectOneMenu>
</h:form>
</f:view>
</html>
Run Code Online (Sandbox Code Playgroud)
还有我的 viewScoped bean
@Named
@ViewScoped
public class TestView implements Serializable {
String chosen;
List<String> list;
@PostConstruct
public void setup(){
list = new ArrayList<>();
list.add("alpha");
list.add("gamma");
list.add("bravo");
}
Run Code Online (Sandbox Code Playgroud)
为简单起见,省略了 getter 和 setter。
问题是我曾经使用过(jsf 2.2,primefaces 6.1)并且一切正常。
升级后(jsf 2.3,primefaces6.2),每当事件更改时(当我更改选择被触发时),我都会遇到问题
错误是
Uncaught TypeError: Cannot read property 'error' of null
at Object.<anonymous> (core.js.xhtml?ln=primefaces&v=6.2:3)
at i (jquery.js.xhtml?ln=primefaces&v=6.2:2)
at Object.fireWith [as resolveWith] (jquery.js.xhtml?ln=primefaces&v=6.2:2)
at A (jquery.js.xhtml?ln=primefaces&v=6.2:4)
at XMLHttpRequest.<anonymous> (jquery.js.xhtml?ln=primefaces&v=6.2:4)
Run Code Online (Sandbox Code Playgroud)
jsf2.3 和 primefaces 之间是否有任何冲突 javascript?
AFAICS 这是 Mojarra 中的一个错误,我会在那里创建一个问题。似乎组件资源在回发中可用(请参阅 PrimeFaces HeadRenderer),但不知何故它们没有在 head 标签内的响应中呈现。
注意:这只会在 update=@all 时发生,否则头部标签不会被替换。实际上 update=@all 不应该使用,只有在真的非常有必要时才使用。
关于你的事实问题(我认为这是错误的表述),
jsf2.3和primefaces之间的javascript有冲突吗?
答案是:
不,那里没有。由于PrimeFaces展示是“在Mojarra-2.3.2上运行PrimeFaces-6.2”,根据实际操作展示底部:https://www.primefaces.org/showcase/
但你对我的编辑表明(就像我在评论中发布的那样)你实际运行的项目中有多个 PF 版本。
| 归档时间: |
|
| 查看次数: |
4234 次 |
| 最近记录: |