我的bean是viewscoped。我有一個簡單的字符串屬性與getter和setter。吸氣劑工作正常(通過初始化屬性檢查),但不是設置者。在setter方法中,我使用每個傳入參數構建一個Stringbuffer。Bean屬性未更新
代碼:
public String getParamval() {
return paramval;
}
public void setParamval(String paramval) {
logger.info("Incoming value:" + paramval);
pvals.append(paramval);
this.paramval = "VAL";
}
是不是錯了?我已經在setter中進行了測試,看看是否傳入了輸入字符串,但顯然該方法根本沒有被調用/調用。在視圖中使用#{}表示法。
查看:
<c:forEach items="${gdsiGeodataBean.requiredfields}" var="reqs">
<h:outputLabel value="#{reqs}:* " />
<pou:inputText value="#{gdsiGeodataBean.paramval}" required="true" requiredMessage="Input is required."/>
</c:forEach>
,爲什麼我會想要建立一個setter方法一個StringBuffer?因爲輸入文本是基於動態列表動態創建的。我只有一個要綁定的bean屬性。
我知道我可以使用地圖,但出於與上述相同的原因,我似乎無法在setter方法中更新地圖值。這與我在此處詢問的問題相關Updating a map value in a managed bean
嚮導組件位於對話框組件內的之內。這個表單裏面和對話框裏都沒有其他的形式。在視圖中,渲染的屬性沒有設置爲false。我想我需要檢查viewtree來確定這一點。 –
algone
2012-01-06 13:02:08
發生了一些奇怪的事情。我用標記替換了標記,現在setter工作。這是爲什麼? –
algone
2012-01-06 13:10:45
顯然你依賴於視圖渲染時間表達式。長話短說:http://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense – BalusC 2012-01-06 13:14:51