Jsf 即使是简单的f:setPropertyActionListener也总是将变量设置为null

Jsf 即使是简单的f:setPropertyActionListener也总是将变量设置为null,jsf,primefaces,Jsf,Primefaces,也许我错过了一些东西,但我真的不知道我的代码出了什么问题,我用非常简单的教程完成了这项工作,但我的按钮仍然没有在我的bean中设置变量 我想给它button值的值,所以若button值是button,我想把字符串变量设置为button 这是我的豆子: @ManagedBean(name = "lwDetailsBean") @SessionScoped public class LwDetailsBean { public String listaWydan; public String g

也许我错过了一些东西,但我真的不知道我的代码出了什么问题,我用非常简单的教程完成了这项工作,但我的按钮仍然没有在我的bean中设置变量

我想给它button值的值,所以若button值是button,我想把字符串变量设置为button

这是我的豆子:

@ManagedBean(name = "lwDetailsBean")
@SessionScoped
public class LwDetailsBean {

public String listaWydan;

public String getListaWydan() {
    return listaWydan;
}

public void setListaWydan(String listaWydan) {
    this.listaWydan = listaWydan;
}
这是我的xhtml代码:

<p:commandButton value="#{item.listaWydan}" oncomplete="PF('test').show()">
       <f:setPropertyActionListener value="#{item.listaWydan}" target="#{lwDetailsBean.listaWydan}" />
</p:commandButton>
我甚至尝试使用固定值,但没有效果:

<p:commandButton value="#{item.listaWydan}" oncomplete="PF('test').show()">
       <f:setPropertyActionListener value="ILW000022784" target="#{lwDetailsBean.listaWydan}" />
</p:commandButton>

有人能告诉我这段代码有什么问题吗?

@SessionScoped beans必须实现Serializable。你的意思是说你在setter方法中添加了一个断点/logger/stdout/whatever,并观察到它总是被调用的,但参数总是空的?或者您是否以不同的方式观察/总结/假设了它?我使用这个变量作为另一个方法的参数,我使用sys.out检查它包含什么。实现Serializable并没有解决为什么listaWydan属性是公共的问题?将其更改为private。那么,您还没有检查setter方法是否被调用?您只通过从外部调用getter来检查变量?这与您在问题标题中所说的内容相冲突。请向setter方法添加断点/logger/stdout,并验证是否总是使用null参数调用它。如果事实证明setter方法实际上从未被调用,那么您需要重新构造问题。