【问题标题】:Primefaces - methods not listed in 'actionListener'Primefaces - 'actionListener' 中未列出的方法
【发布时间】:2014-06-29 23:46:22
【问题描述】:

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

}

【问题讨论】:

  • 发布您的 xhtml 和 bean 代码。

标签: java eclipse jsf jsf-2 primefaces


【解决方案1】:

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"%>

【讨论】:

  • 感谢您的意见。根据链接:“注意:使用命令组件的“action”或“actionListener”属性实现动作侦听器更为常见,例如 h:commandButton 或 h:commandLink。f:actionListener 标签对您希望跨多个组件实现或重用通用动作侦听器功能的情况。”并且这些方法在代码完成中列出了'h:commandButton',以及我在上面发布的用法。
  • 我相信是的。见编辑@user3628930
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多