繁体   English   中英

Primefaces-未在'actionListener'中列出的方法

[英]Primefaces - methods not listed in 'actionListener'

我正在使用Primefaces 4.0。 我在Bean类中有一个方法,我想在commandButton中调用它。 使用Primeface的commandButton时,Eclipse(Kepler)代码按预期完成了Bean的名称,但未列出方法。 该方法被调用,但是没有代码完成。 如果我使用默认的commandButton,则会列出所有方法(包括“等于”和“ 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);
    }

}

printName()不是Listener object 你需要有一个Listener object处理呼叫,并在action从那里完成。

这里有一些文档可以帮助您理解。

编辑

这应该工作:

<p:commandButton>
       <f:actionListener/>
</p:commandButton>

如果您已经包含了标记库并下载了JAR并将其放在/WEB-INF/lib

<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM