Categories
Hatalar Java JSF

javax/servlet/jsp/jstl/core/LoopTagStatus Hatası

Merhaba Arkadaşlar ,

Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.LoopTagStatus

Yukaridaki hatayı alıyor iseniz muhtemelen JSTL fonksiyonlarından foreach veya datatable gibi döngü içeren componentları kullanıyorsunuz.

        <c:forEach items="#{mainController.databases}" var="databases">
            <h:outputText value="#{databases.name}" />
        </c:forEach>

JSF 1.2 ile bu sorun çözüldü. Aşağıdaki depency projenize ekleyin veya güncelleyin sorun çözülecek

  <dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>jstl</artifactId>
	<version>1.2</version>
  </dependency>

 

Muharrem Tığdemir

 

Categories
Hatalar JSF

Setter not found for property class – JSF

Merhaba Arkadaşlar ,

Managed Bean’leri bazen template içinde kullanmak isteyebiliyoruz. Örneğin header da  “Hoşegeldiniz  , blabla ” yazması için bile olabilir.  Eğer template kullanıyorsanız , burada benim başımı baya ağrıtan bir problem oluşuyor. İnternette araştırdıktan sonra sorunun çözümünü buldum. Umarım bu hata ile karşılaşırsanız sizde kolayca  çözersiniz.

 

Çözüm için yapmanız gereken tekşey var.  Managed Bean kullandığınız html tag’ının class attribute’ unu styleClass olarak değiştirmeniz yeterli. Aşağıdaki gibi ;

Çözüm :

 <p:password  value="#{mainController.loginMember.memberPassword}" class="span2" />
 <p:password  value="#{mainController.loginMember.memberPassword}" styleClass="span2" />

 

Hata Kodu :

java.lang.IllegalArgumentException: Setter not found for property class
	at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2450)
	at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2330)
	at com.sun.faces.facelets.tag.jsf.ComponentRule$LiteralAttributeMetadata.applyMetadata(ComponentRule.java:87)
	at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81)
	at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:412)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:175)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)

şeklinde devam ediyor..

 

Kaynak : http://duckranger.com/2010/05/facelets-setter-not-found-for-property-class/ (Thank you again..)

Görüşmek Üzere

 

Muharrem Tığdemir

Categories
Hatalar JSF

Primefaces PF is not defined

Merhaba arkadaşlar ,

Primefaces’ın 4.0 versiyonunda gelen PF shorcut’ı 3.xx kullandığım için  “PF is not defined” hatası ile karşılaştım. Önceki versiyonlardan hatırlamayanlar için bu hatanın çözümü şu şekilde ;

 

                    <p:column style="width:4%" headerText="Show">  
                        <p:commandButton id="selectButton" oncomplete="videoDialog.show()" icon="ui-icon-search" title="View">  
                            <f:setPropertyActionListener value="#{video}" target="#{videoController.selectedVideo}" />  
                        </p:commandButton>  
                    </p:column>
Categories
Java JSF

JSF, SEO ve PrettyFaces Hakkında

Merhaba Arkadaşlar ,

 

Bu yazımda size web sitelerinin en önemli ihtiyaçlarından SEO yu JSF üzerinde kullanmayı anlatacağım. Bunun için PrettyFaces isimli url-rewrite JSF kütüphanesini kullanacağız.

 

Öncelikle gerekli dosyaları ekleyelim. Kurulum için

  1. <dependency>
        <groupId>org.ocpsoft.rewrite</groupId>
        <artifactId>rewrite-servlet</artifactId>
        <version>2.0.7.Final</version>
    </dependency>
    <dependency>
        <groupId>org.ocpsoft.rewrite</groupId>
        <artifactId>rewrite-config-prettyfaces</artifactId>
        <version>2.0.7.Final</version>
    </dependency>

    pom.xml dosyamıza gerekli kütüphaneleri ekleyelim.  Maven kullanımı hakkında daha ayrıntılı bilgi için Maven Web Site buraya bakabilirsiniz.  

Categories
Hatalar JSF

JSF web.xml .xhtml Compile Failed

Merhaba Arkadaşlar ,

Netbeans ile Maven projesi açtığımızda  , web.xml dosyası oluşturmuyor . Bu sebple xhtml içinde yazdığımız managed bean kod blokları html tagları olarak kalıyor ve derlenmiyor. Bunun için web.xml dosyamıza routing yaparak bu dosyalara servlete yönlendirmeliyiz. Peki bu nasıl olacak;

 

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

 

web. xml e bu kod bloğunu eklerseniz. Bundan sonra     blabla.xhtml , index.xhtml , index.jsf vs.. şeklide gelen url istekleri  server’da servlet olarak derlenerek kullanıcıya ulaşacaktır. *.xhtml bu işlemi sağlamaktadır.   Bu işlem PHP’de aynı şekilde Apache server üzerinde htaccess ile de manuel olarak yapılabilir.

 

Muharrem Tığdemir

Categories
JSF

Faces-config.xml Ne işe yarar?

Arkadaşlar merhaba ,

Jsf projelerinin içinde hiyerarşi olarak WEB-INF klasörü içine oluşturulan  faces-config.xml dosyasının temelde 4 işlevi bulunuyor.

 

  1. Managed-Bean’leri tanımlamak
  2. Sayfalar arası geçişleri tanımlamak(navigation-rule)
  3. Validator’ları tanımlamak
  4. Data-Converter’ları tanımlamak

 

Kısaca bunlar ne iş yapıyor..

Managed-Bean’ler teknik olarak Java Bean lerden türemiştir ve amaçları bulundukları sayfanın iş mantığını ve modelini tanımlamaktır.

Managed Bean Örnek Tanımlama

<managed-bean>
<managed-bean-name>controller</managed-bean-name>
<managed-bean-class>com.videoscript.controller.Controller</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>