我希望每次更改idOutput
的值时都更新selectOneMenu
,但是当它每次更改为null
不同的值时,我就不能{as} { {1}}另一次,我认为这是由于null
,但我不知道如何仅在ajax请求中避免验证。
以下是代码:
豆:
required="true"
XHTML:
@ViewScoped
@ManagedBean
public class ProbeNull implements Serializable
{
private static final long serialVersionUID = 1628174277372407129L;
private Boolean probe;
public ProbeNull()
{
super();
}
public void show()
{
System.err.println("Value : " + probe);
}
public void save()
{
System.err.println("Save : " + probe);
}
public Boolean getProbe()
{
return probe;
}
public void setProbe(Boolean probe)
{
System.err.println("Setter: " + probe);
this.probe = probe;
}
}
如何避免它?
答案 0 :(得分:0)
您可以使用两个remoteCommand标记和JavaScript来执行您想要的操作。
<p:remoteCommand name="makeSelection" process="select" update=":idOutput" />
<p:remoteCommand name="clearSelection" process="@this" update="select,:idOutput" >
<f:setPropertyActionListener value="#{null}" target="#{probeNull.probe}" />
</p:remoteCommand>
现在您可以决定使用javascript函数调用哪一个
<p:selectOneMenu id="select" required="true" value="#{probeNull.probe}" onchange="selectFunction(this)">
...
function selectFunction(el){
//if el.value is empty you call clearSelection();
//else you call makeSelection();
}
不要忘记删除<p:ajax update=":idOutput" />