2011-06-07 148 views
0

我是新來jsf 2.0和春天3.0,我有一個要求在jsf 2.0中使用自定義轉換器。但它不被識別,當我訪問我的xhtml頁面時顯示異常 「命名對象未找到」。我曾用@FacesConverter註釋自定義轉換器,它是用在H:selectOneMenu.But我得到error.could在這個任意一個幫助...jsf自定義轉換器

@FacesConverter("selectItemsConverter") 
public class SelectItemsConverter implements Converter { 
public Object getAsObject(FacesContext context, UIComponent component, String value) { 

} 
public String getAsString(FacesContext context, UIComponent component, Object value) { 

} 

} 

H: selectOne菜單代碼如下:

<h:selectOneMenu style="width:100px;height:24px;" rendered ="#{row.edit}" value="#{row.modelo.country}" converter="selectItemsConverter" required="true" requiredMessage="#{msg['veci.admin.ccaa.pais.empty']}"> 
<f:selectItems value="#{communityView.countries}" var="con" itemLabel="#{con.nombrePais}"/> 
</h:selectOneMenu> 

謝謝大家.............

+0

請在調用轉換器的地方添加'h:selectOneMenu'。 – 2011-06-07 07:56:08

+0

嗨,我用h更新我的代碼:selectOneMenu – 2011-06-07 08:04:40

回答

2

如果您想通過其converterID你需要改變你的代碼如下調用轉換器:

<h:selectOneMenu style="width:100px;height:24px;" 
       rendered ="#{row.edit}" 
       value="#{row.modelo.country}" 
       required="true" 
       requiredMessage="#{msg['veci.admin.ccaa.pais.empty']}"> 
    <f:converter converterId="selectItemsConverter"/> 
    <f:selectItems .../> 
</h:selectOneMenu> 

h:selectOneMenu的轉換器屬性需要一個完全合格的類名稱,如:

<h:inputText 
    converter="javax.faces.convert.IntegerConverter" /> 

如果你想給你的轉換器自定義ID使用value參數:

@FacesConverter(value="selectItemsConverter") 
+0

上面粘貼的代碼與jsf 2.0 ejb和jpa一起工作,但它不能與jsf和spring集成。我會改變什麼..? – 2011-06-07 08:32:18

+0

你是否在'value'屬性中使用'@ FacesConverter'註解?在您的服務器日誌中,必須有與您的錯誤相關的異常。您可以將例外發布爲答案的補充。 – 2011-06-08 06:17:03