2013-08-23 2 views
2

JSF 2.2, Netbeans 7.3 및 GlassFish v2를 사용하여 간단한 응용 프로그램을 실행하려고합니다.* .xhtml에서 JSF 태그가 작동하지 않고 * .jsp 파일로 작동합니다.

index.xhtml :

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://xmlns.jcp.org/jsf/html"> 
    <h:head> 
     <title>Facelet Title</title> 
    </h:head> 
    <h:body> 
     <b>Hello from Facelets</b> 
     <h:form id="this"> 
      <h:outputText value="This is"/> 
     </h:form> 
    </h:body> 
</html> 

web.xml :

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
    <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>/faces/*</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>faces/index.xhtml</welcome-file> 
    </welcome-file-list> 
</web-app> 

출력 :


Output file


,745,

<b>Hello from Facelets</b>이 작동하지만 <h:outputText value="this is "/>이 작동하지 않습니다. 어떻게 이런 일이 생기고 어떻게 해결할 수 있습니까?

나는 다음과 같은 질문을 여기에 검색하고 발견

는 :

그러나, 대답은 myproblem가 해결되지 않았다.


업데이트 : @Xtreme 자전거 타는 사람, 난 당신처럼 변경 내가 예외 다음 도착했다 :

This is exception

참고 : 내가 *.jsp 대신 작동 *.xhtml을 사용합니다. 그러나 내가 내 index 파일 확장자 xhtml을 만들면 작동하지 않습니다.

+0

편집 해 주셔서 감사합니다. – Yubaraj

답변

3

은 이미 JSF 1.2 번들 고대 자바 EE 5 컨테이너 인 GlassFish v2를 사용하고 있습니다. webapp에서 제공하는 JSF는 기본적으로 이 무시되어이며 기본적으로 JSF 1.2를 실행하고 있습니다. 이것이 JSP가 정상적으로 작동하는 이유를 설명합니다. Facelets는 JSF 2.0 이후에만 지원됩니다.

당신은에 따라 다음과 같은 옵션이 있습니다 귀하의 요구 사항은 JSF 2.2, 사용할 수있는 또는 글래스 피쉬 v2로 제한되는 여부 :

  1. 당신은 '당신이 할 수있는, 글래스 피쉬 v2로 제한하는 경우 JSF 2.2를 전혀 사용하지 마십시오. JSF 2.2에는 최소한 Java EE 6 (GlassFish 3)이 필요합니다. 그러나 JSF 2.0 또는 2.1을 사용할 수 있습니다. 최신 JSF 2를 다운로드 할 수 있습니다.1에서 here (현재 2.1.25). <sun-web-app>에 다음 항목을 추가 할 /WEB-INF/sun-web.xml/WEB-INF/lib에서 javax.faces.jar을 삭제하고 편집 :

    <class-loader delegate="false"/> 
    <property name="useBundledJsf" value="true" /> 
    

    이 기본적으로 자신의 번들 JSF를 통해 웹 애플리케이션 번들 JSF을 선호하는 글래스 피쉬를 지시합니다. 당신이 V2 GlassFish를 제한하지 않는 다음 가능한 한 빨리 그것을 할, 업그레이드 할 수있는 경우


  2. . GlassFish v2는 2006 년 5 월의 고대 컨테이너이며 2013 년 5 월 GlassFish 4 (Java EE 7)가 GlassFish 3 (Java EE 6)를 이어 2009 년 12 월에 성공했습니다.

    GlassFish 3.0 번들 JSF 2.0 및 GlassFish 3.1 번들 JSF 2.1. 그러나 GlassFish v2와 동일한 방식으로 JSF 2.2로 업그레이드 할 수 있습니다. 차이점은 sun-web.xmlglassfish-web.xml으로 변경되었습니다. 또 다른 방법은 GlassFish의 /modules 디렉토리에있는 jsf-api.jar + jsf-impl.jar 또는 javax.faces.jar을 원하는 버전으로 바꾸는 것입니다.

    GlassFish 4.0에는 JSF 2.2가 번들되어 있으므로 수동으로 JAR을 제공 할 필요가 없습니다. 현재는 GlassFish 4.0을 사용하지 않는 것이 좋습니다. GlassFish의 첫 번째 주요 릴리스와 마찬가지로 너무 버그가 있습니다. 4.0.1 (나올 경우)이나 4.1을 기다리는 것이 더 좋습니다. 당신이 V2 GlassFish를 제한하고 어떻게 든 JSF 2.x를 업그레이드 할 수 없습니다,하지만 당신은 정말, 정말 Facelets의를 사용하려면


  3. , 당신은 항상 별도로 Facelets의에게 1.x에서 설치할 수 있습니다. 절차는 this docbook에 설명되어 있습니다. 그러나 JSP 대신 Facelets를 사용하는 장점이 있지만 JSF 1.x는 disavantageous입니다. 나는 정말로 그것을 추천하지 않을 것이다.

+0

감사합니다. 귀중한 정보입니다. – Yubaraj

+0

반갑습니다. – BalusC

2

이 교체하려고

xmlns:h="http://java.sun.com/jsf/html" 

대신

xmlns:h="http://xmlns.jcp.org/jsf/html" 
+0

나는 아무 일도 일어나지 않았다. – Yubaraj

+0

전체 index.xhtml 파일을 게시 할 수있다. – newuser

+0

왜 안되는가. 제 편집 된 내용보기 – Yubaraj

4

변경의 순서대로 서블릿 매핑은 .xhtml 파일로 작업 할 수 있습니다. 아직 태그를 변환하지 않는 것 같습니다.

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 
+0

하지만 편집 한 질문을 예외로 보았습니다. 예외를 표시하고 있습니다. – Yubaraj

+0

환영받은 파일이 잡힌 것 같지 않습니다. 'faces/index.xhtml'에서'index.xhtml'로 변경하십시오. –

+0

예, 제공 한 코드를 교체했을 때. 그 후에 나는'faces/index.xhtml'을 단지'index.xhtml'로 바 꾸었습니다. – Yubaraj

관련 문제