我在JSF頁面上可能AJAX有問題。他不會調用bean方法。轉換器工作並返回一個正確的對象,但bean方法不會調用。 如果我刪除執行部分方法調用。 如果我刪除逆變器並只發送Id方法調用。 他們一起失敗。JSF阿賈克斯和自定義轉換器
JSF頁面
<h:form id="jewelForm">
<!-- ... -->
<h:selectOneMenu id="material" value="#{jewelBean.material}" >
<f:converter converterId="materialConverter"/>
<f:selectItems value="#{jewelBean.materialList}" var="c"
itemLabel="#{c.name}" itemValue="#{c.id}" />
</h:selectOneMenu>
<h:commandButton id="but1" value="#{titles.addThisMat}">
<f:ajax id ="aj1"
listener="#{jewelBean.addMaterial}"
render="jewelForm:matTable"
execute="material"/>
</h:commandButton>
<h:dataTable id ="matTable"
</h:dataTable>
<h:commandButton value="#{titles.createThisJ}"
action="#{jewelBean.saveJewel()}" />
</h:form>
豆
@ManagedBean(name = "jewelBean")
@SessionScoped
public class JewelBean implements Serializable {
private Material material;
public void addMaterial() {
MaterialJewel mj = new MaterialJewel();
mj.setMaterial(material);
mj.setWeight(materialWeight);
materialJewels.add(mj);
}
public Material getMaterial() {
return material;
}
public void setMaterial(Material material) {
this.material = material;
}
}
轉換器
@FacesConverter("materialConverter")
public class materialConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
try {
//finding object with DAO
return material;
}
} catch (NumberFormatException ex) {
}
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return value.toString();
}
}
感謝您的意見。
沒有,我已經嘗試過了,並沒有幫助。 – kisileno