JSF “readonly” Bir Alandan Veri Çekmek
Java Server Faces projelerinde bir alanınız (inputar, radio buttonlar vb..) readonly durumunda diyelim. Senaryoya göre readonly alana bir değer gönderdiniz sadece kullanıcının değiştirmesini engellemek istiyorsunuz. Bu alanları tekrar bir beane göndermek istediğinizde bean alanlarınıda bu readonly alandan “null” olarak gelmekte ve bir türlü sayfadaki readonly alandan veri alınmamakta.
Bu durum oldukça sık karşılaşılan bir durum. Alanlarımızı readonly yapmak demek o an için readonly olmasını istediğimiz anlamına gelmekte. Java Server Faces Yaşam Döngüsü boyunca alanların değerlerini readonly alana aktarmadan tutmamız gerekmektedir. Readonly alana girdiği andan sonra aktarım yaptığımızda bu yüzden null değer gelmektedir.
Çözümü ise dediğim gibi JSF Yaşam Döngüsü Boyunca veriyi saklamak. Çözüm ise basit.
readonly="#{not facesContext.postback or facesContext.renderResponse}"
readonly alanına girilen değeri saklamak için yapılması gereken işlem bu kadar. Ben genelde renderResponse diyerek bu alana gelen değeri koruyabiliyordum ancak bazı kaynaklar sadece bunun yeterli olmayabileceğinden bahsetmişler bu yüzden yukarıda belirtilen şekilde kullanmaya başladım. Şu ana kadar bir sorun gözükmüyor.
No Comment! Be the first one.