[英]CommandButon 's actionListener not working
我在ah:selectOneMenu中選擇一個項目后,不會調用commandButton中的mi actionListener,只有當我在selectOneMenu中沒有任何選擇的情況下按下按鈕時,它才起作用。您可以在下面看到我的代碼:
<h:form id="formBtnBusquedaAnomalias">
<table>
<tr>
<td>
<h:outputLabel id="idEstatusAnomalias" value="Estatus anomalias." />
<h:selectOneMenu id="selectOneMenuEstatusAnomalias"
value = "#{busquedaAnomaliasManageBean.selectedEstatusAnomaliaVO}" >
<f:converter converterId="estatusAnomaliaConverter"/>
<f:selectItem itemLabel="Select one" />
<f:selectItems value="#{busquedaAnomaliasManageBean.lstEstatusAnomaliaVOs}" var="estatusAnomalia"
itemLabel="#{estatusAnomalia.descripcionEstatusAnomalia}" />
</h:selectOneMenu>
</td>
</tr>
<tr>
<td>
<p:commandButton value="Buscar anomalias."
actionListener="#{busquedaAnomaliasManageBean.buscarAnomalias()}" />
</td>
</tr>
</table>
</h:form>
轉換器類別:
@FacesConverter(value = "estatusAnomaliaConverter")
public class EstatusAnomaliaConverter implements Converter{
@Override
public Object getAsObject(FacesContext ctx, UIComponent component, String value) {
EstatusAnomaliaVO estatusAnomaliaVO = new EstatusAnomaliaVO();
estatusAnomaliaVO.seDescripcionEstatusAnomalia(value);
return estatusAnomaliaVO;
}
@Override
public String getAsString(FacesContext ctx, UIComponent component, Object object) {
String temp = "";
if(!object == null)
{
temp = object.toString();
}
return temp;
}
}
ManageBean:
@ManagedBean(name=ConstantesManageBeans.MANAGE_BEAN_BUSQUEDA_ANOMALIAS)
@RequestScoped
public class BusquedaAnomaliasManageBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1955257440354260445L;
public void buscarAnomalias(){
//...some code here
}
]
您的buscarAnomalias
方法未遵循ActionListener方法的簽名。 這是簽名:
public void actionListener(ActionEvent event) {
// ...
}
為了使其工作,只需將ActionEvent
參數添加到您的方法中:
public void buscarAnomalias(ActionEvent event) {
//...some code here
}
如果您是我,我將使用action
而不是actionListener
來執行托管bean操作:
<p:commandButton value="Buscar anomalias."
action="#{busquedaAnomaliasManageBean.buscarAnomalias()}" />
請注意,使用這種方法,您無需將ActionEvent event
參數添加到您的方法中。
更多信息:
代碼中的另一個問題是,當檢索所選項目的值時, FacesConverter
失敗。 這是因為您尚未在<f:selectItems>
設置itemValue
:
<h:selectOneMenu id="selectOneMenuEstatusAnomalias"
value="#{busquedaAnomaliasManageBean.selectedEstatusAnomaliaVO}">
<f:converter converterId="estatusAnomaliaConverter"/>
<f:selectItem itemLabel="Select one" />
<f:selectItems value="#{busquedaAnomaliasManageBean.lstEstatusAnomaliaVOs}"
var="estatusAnomalia" itemValue="#{estatusAnomalia}"
itemLabel="#{estatusAnomalia.descripcionEstatusAnomalia}" />
</h:selectOneMenu>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.