我已經花了更多的時間,因爲在輸入文本字段中有一些保存或更新問題,我直接去了點: 我有一些基本的單獨輸入文本如何使用ajax監聽器保存或更新單個inputText字段
<h:inputText id="name" value="#{salesController.selectedSalesName}" />
這裏是inputText的值
public String getSelectedSalesName(){
for(DealerListView dealer : dealerList){
if(dealer.getDealerId() == getSelectedDealerId()){
return dealer.getName();
}
}
return "";
}
嵌套一個getter在那裏,我用ajax標籤
<f:ajax event="change" render="name" listener="#{salesController.updateSelectedSalesName()}" />
一個這裏是回用於更新輸入文本字段
public void updateSelectedSalesName() {
DealerData dealDat = BeanFactory.getHotelDAOService(DealerData.class).findOne(selectedDealerId);
dealDat.setName(name);
BeanFactory.getHotelDAOService(DealerData.class).update(dealDat);
}
的這整個結果堆棧跟蹤它說
01不可寫值bean方法=」 #{} salesController.selectedSalesName「:房產 'selectedSalesName' 在類型sk.hotel.web.controller.SalesController
我知道有新的變化是需要爲getter方法,但嘗試沒有結果,一些組合,這使得有價值的數據庫corect更新。
(我不使用對提交的任何命令的按鈕,當按下Enter鍵在inputText字段只更新響應)。 我需要一些指導如何修改這個保存/更新過程是否回溯豆或JSF佈局 或也許有人已經解決了類似的情況,並可以分享他的解決方案
感謝大家的意見的帖子。 的問候和美好的一天
1.''屬性值的結合需要**都setter和getter ** bean的屬性和前應該引起你所面臨的prblems。 2.你將面對的性能問題,作爲消氣部件可以被稱爲很多次,你寫的方式是消耗資源(替代方法:使用您在'Constructor' /'@ PostConstruct'方法/'preRenderView'評價其他字符串屬性事件3阿賈克斯監聽器必須是以下類型'公共無效ajaxListener(AjaxBehaviorEvent事件)'的,所以改變你的bean的方法聲明。 –
skuntsel
2013-03-01 10:59:37
謝謝你的帖子,也爲這些建議,是的,我想這兩個結合前的OD setter/getter,但這只是簡單的概述,並沒有深入這方面,我嘗試修改基於這個我的代碼,我看到我有多遠:) – Maston 2013-03-01 12:35:57
不客氣! – skuntsel 2013-03-01 12:39:26