Sansür, bir toplumun kendine olan güvensizliğini yansıtır ve otoriter rejimlerin belirgin bir özelliğidir.

--Potter Stewart

26.07.2012

JSF MyFaces ve Spring Core

Uzunca bir süre projelerimizde ve JSF eğitimlerimizde JSF'in referans gerçekleştirimi olan Mojarra'yı kullandık. Referans gerçekleştirimi olmasına rağmen Mojarra'da yer alan hatalar ve MyFaces gerçekleştirimine kıyasla yavaş çalışması sonucu yeni projelerimizde MyFaces kullanmaya karar verdik.

Basitçe bu geçişi Mojarra'nın api ve impl .jar'larını MyFaces'inkilerle değiştirerek yapabiliyorsunuz. Lakin MyFaces, Mojarra'ya göre bazı noktalarda farklı davranabiliyor. Bu davranışı da web.xml'de ekleyebileceğiniz çeşitli context-param'larla düzenleyebiliyorsunuz.

MyFaces JSF'i Spring ile kullanırken karşılaştığımız bir farklılık da viewScope tanımlı managedBean niteliklerine bağımlılık aktarımı yapılan Spring bean'lerin ikinci istekte null değerler almasıydı. Bunun sebebi de MyFaces'in varsayılan olarak session'daki JSF state'ini her defasında serialize/deserialize etme çabasıydı. İkinci istek işlenirken deserialize yapılan JSF beanlerine Spring beanleri aktarılamadığı için NullPointerException hatası alıyorsunuz.


<context-param>
  <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
  <param-value>false</param-value>
 </context-param>


şeklinde yazılan context-param değeri bu sıkınıtının önüne geçiyor. Buna benzer MyFaces parametrelerin listesini buradan inceleyebilirsiniz..