2011-07-07 60 views
0

現在我需要設置變量的幫助。 我有兩個實體賽季和錦標賽,錦標賽屬於賽季。 所以現在我創造了一個賽季,我看到了本賽季的名單。我這裏有一個按鈕「選擇」,它應該實際賽季保存到會話範圍:設置隱藏變量爲實體

public String selectSezona(Sezona sezona){ 
     this.sezona = sezona; 
     return "index"; 
    } 

所以現在我選擇了一個賽季,現在我想在這個賽季創造的比賽,但我不想選擇的季節,所以我寫這篇文章:

<h:inputHidden value="#{turnaje.turnaj.setSezona(sezony.sezona)}" /> 

這是隱藏輸入文本應實際賽季分配給本次比賽,但這不會工作:(錯誤是:。javax.el.PropertyNotWritableException我看到那個賽季設置,因爲我看到它的名字如何。請點擊這個問題?請幫忙 thx

編輯:

我也有在比賽

@ManyToOne 
private Sezona sezona; 

public Sezona getSezona() { 
     return sezona; 
    } 

    public void setSezona(Sezona sezona) { 
     this.sezona = sezona; 
    } 

getter和setter,但爲什麼我應該有方法setSezona不帶參數?

回答

2

那麼,你有一個selectSezona(...)方法,但不是setSezona(...)

事實上,您的隱藏字段將需要一個屬性作爲它的值,而不是一個方法。 您的setSezona(...)不會返回任何內容,但是,JSF需要獲取初始值的方法。因此,您需要將表達式更改爲#{turnaje.turnaj.sezona}

由於JSF無法在StringSezona之間轉換,因此您仍然會收到錯誤消息,因此您還需要爲隱藏字段提供轉換器。

+0

但爲什麼我應該有方法setSezona沒有參數? – hudi

+0

對不起,答案是誤導性的,我會更新它。 – Thomas

+0

嗯我嘗試這個,但這仍然沒有工作。如何在錦標賽賽季中知道要設置什麼時,我將它改爲#{turnaje.turnaj.sezona} – hudi