我开始使用JSF和PrimeFaces 6.1编写代码 我的index.xhtml看起来像:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class CounterBean implements Serializable {
private int count = 0;
public void increment() {
count++;
}
public int getCount() {
return count;
}
public void setCount(int name) {
this.count = name;
}
}
CounterBean.java是:
{{1}}
即使我看到inputText和outputText的小部件显示,但是当inputText的值发生变化时,没有进行ajax调用。 类似地,当inputText改变时,outputText的值也不会改变。
以上代码有什么问题?
答案 0 :(得分:2)
你遗失了两件事,
:<h:head></h:head>
将包含所需的JavaScript库,
并且您需要将输入包装在h:form
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<h:form>
<h:inputText id="counter">
<p:ajax update="out" listener="#{counterBean.increment}"/>
</h:inputText>
<h:outputText id="out" value="#{counterBean.count}"/>
</h:form>
</h:body>
</html>