我使用的是Primefaces 4.0。我在Bean类中有一个方法,我想在commandButton中调用它。使用Primeface的commandButton时,Eclipse(Kepler)代码按预期完成bean的名称,但不列出方法。调用该方法,但没有代码完成。如果我使用默认的commandButton,则会列出所有方法(包括'等于'和#39; hashCode')。
简而言之,我正在为Primefaces标签的某些部分完成代码,但不是所有内容。
编辑:
XHTML
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form>
<p:inputText value="#{testBean.name}" id="name" />
<p:commandButton value="Print name" actionListener="#{testBean.printName}" />
</h:form>
</h:body>
</html>
豆
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class TestBean implements Serializable {
private static final long serialVersionUID = -4705029823018566258L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void printName(){
System.out.println(name);
}
}
答案 0 :(得分:0)
printName()
不是Listener object
。您需要Listener object
来处理呼叫并从那里完成action
。
Here是一些可以帮助您理解的文档。
修改强>
这应该有效:
<p:commandButton>
<f:actionListener/>
</p:commandButton>
如果您已添加标记库并已下载JAR并将其放入/WEB-INF/lib
:
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>