从primefaces页面向java bean类发送参数失败



我想从.xhtml页面发送一个对象作为参数给Java类。

我有以下质面dataGrid:

<p:dataGrid value="#{userRequestBean.userActiveRequests}" var="userActiveRequest">
            <h:panelGrid>
                <h:commandButton value="Cancel" actionListener="#{userRequestBean.cancelRequest()}">
                    <f:setPropertyActionListener target="#{userRequestBean.request}"
                            value="${userActiveRequest}" />
                </h:commandButton>
            </h:panelGrid>
        </p:dataGrid> 

在我的bean中,我有:

@ManagedBean(name = "userRequestBean")
@SessionScoped
public class UserRequestBean implements Serializable {
    private TRequest request = new TRequest(); // plus get and set methods
    public void cancelRequest (){
        System.out.println("Author name: " + request.geId());
    }
}

但它告诉我NullPointerException当我按下按钮。你知道我是怎么做到的吗?提前感谢!

 <h:commandButton value="Cancel" actionListener="#{userRequestBean.cancelRequest()}">
                    <f:setPropertyActionListener target="#{userRequestBean.request}"
                            value="${userActiveRequest}" />
                </h:commandButton>

为什么使用标准jsf commandButton而不是Primefaces button。

使用as:

 <p:commandButton value="Cancel" action="#{userRequestBean.cancelRequest()}">
                    <f:setPropertyActionListener target="#{userRequestBean.request}"
                            value="${userActiveRequest}" />
                </p:commandButton>

我们做了什么?

  • 改为Primefaces命令按钮
  • action代替actionListener (ActionListener法应该用ActionEvent代替parameter)。

尝试使用@ viewscope代替@ sessionscope。您还必须为托管bean的请求属性创建getter和setter。

相关内容

  • 没有找到相关文章

最新更新