2013-07-03 59 views
1

我正在學習帶有HTML5友好標記的JSF。我希望收到文本字段輸入一個數字:JSF 2.2適用於數字字段的HTML5友好標記

<form jsf:id="form_item"> 
    <label for="nombre">Nombre:</label><input type="text" jsf:id="nombre" value="#{backend.item.nombre}"/> 
    <label for="edad">Edad:</label> <input type="text" jsf:id="edad" value="#{backend.item.edad}"/> 
    <input type="button" jsf:action="#{backend.addItem}" value="Agregar"/>; 
</form> 

後端豆:

@Named(value = "backend") 
@ViewScoped 
public class Backend implements Serializable{ 

    private Item item; 
    private List<Item> items; 

    /** 
    * Creates a new instance of Backend 
    */ 
    public Backend() { 
     this.items = new ArrayList<>(); 
     this.item = new Item(); 
    } 

    public void addItem(){ 
     this.getItems().add(item); 
    } 

//Setters and getters 

商品豆: 公共類項目{

private String nombre; 
    private Integer edad; 

    public Item(){ 
     this.nombre=""; 
     this.edad=0; 
    } 
//Setters and getters 

該代碼產生的Java。 lang.Integer不能轉換爲java.lang.String。

用h更換輸入文本:inputText的作品:

<h:inputText id="edad" value="#{backend.item.edad}"/> 

我必須放棄HTML5友好的標記在這種情況下?

該應用正在運行GF4 Full profile。

回答

0

我終於能夠讓使用

<input type="text" jsf:id="edad" jsf:value="#{backend.item.edad}"/> 

通過加入JSF這項工作:值屬性之前,一切都按預期。 JEE7教程在8.9.1 Using Pass-through Elements中說,「使用http://xmlns.jcp.org/jsf名稱空間至少指定其一個屬性」,並且示例顯示了不帶名稱空間的value屬性。但是,它似乎只有在bean屬性是一個String時纔有效。

0

無論何時您希望將您的屬性設置爲「JSF-ish」,您都需要在JSF名稱空間中加上前綴。無論如何,我很高興你找到答案!

Ed