2012-12-20 2 views
2

매우 기본적인 JSF 페이지를 실행하려고합니다. Websphere 7.0을 서버로 사용하므로 JSF 1.2를 사용하려고합니다. 브라우저는 html을 렌더링하지 않습니다. doctype을 포함한 모든 html 코드를 표시한다는 의미입니다.
FacesServlet을 통과하지 못했지만 url-pattern이 ' 일치하지 않으면 페이지를 찾을 수 없습니다. JSF 버전 문제입니까? 다른 아이디어? 감사합니다 여러분JSF 페이지가 HTML로 렌더링되지 않습니다.

저는 lib 폴더에 jstl-api-1.2.jar와 jstl-imp-1.2.jar를 포함 시켰습니다.

는 I는 다음의 web.xml을 설정 한 :

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    version="2.5"> 
    <servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
    </servlet-mapping> 
    <context-param> 
    <param-name>javax.faces.PROJECT_STAGE</param-name> 
    <param-value>Development</param-value> 
    </context-param> 
    <context-param> 
     <param-name>javax.faces.application.CONFIG_FILES</param-name> 
     <param-value>/WEB-INF/faces-config.xml</param-value> 
</context-param> 
    <context-param> 
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
    <param-value>.xhtml</param-value> 
    </context-param> 

    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

얼굴-config.xml의 :

<?xml version="1.0"?> 
<faces-config 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-facesconfig_1_2.xsd" 
    version="1.2"> 
</faces-config> 

의 index.jsp :

<% response.sendRedirect("page-a.jsf"); %> 

그리고 시작 xhtml 파일 :

<!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://java.sun.com/jsf/html"> 
+0

Proyect에서 Facelets를 사용하고있는 것으로 보입니다. 이것이 시나리오라면 접미어와 패턴에 문제가 있습니다. Faces 서블릿은 모든 _ * .jsf_ 페이지 즉, http : // YourServerIP/YourProject/index.jsf를 처리하지만 기본 접미사는 * xhtml *. Faces 서블릿 패턴을 * .xhtml로 변경하고 'http : // YourServerIP/YourProject/index.xhtml'과 같은 페이지에 액세스하고 있는지 확인하십시오. –

답변

1

Facelets 1.x에서 JSF 1.2를 사용하려고하는 것 같습니다. 괜찮아요,하지만 Facelets 뷰 핸들러는 faces-config.xml에 없습니다.

<application> 
    <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>  
</application> 

참고이에 대한 jsf-facelets.jar 파일이 필요합니다 : 당신은 거기에 다음 항목이 있어야합니다.

실제로 웹 응용 프로그램과 함께 JSTL을 제공 할 필요는 없습니다. WebSphere 7은 본격적인 Java EE 5 응용 프로그램 서버로서 이미 자체적으로 제공합니다. WebSphere에서 제공하는 JSTL JAR 파일과 충돌 할 수 있으므로 JSTL JAR 파일을 제거하는 것이 좋습니다. JSF는 이미 WebSphere에서 제공하고 있지만, Facelet은 Java EE 6 이후로 Java EE의 일부가 아닙니다.

Facelets 뷰 핸들러가 없기 때문에 JSF 이후 올바른 Facelets 자습서를 읽고 있는지 궁금합니다. 2.0에서는 Facelets <view-handler> 설정이 필수 사항은 아니기 때문에 이미 JSF 2.0 타겟 튜토리얼을 우연히 읽었을 것입니다. JSF 1.x에 대한 내용을 실제로 읽어야하는 반면, 완전하게하기 위해 여기 the official developer guide of Facelets 1.x 링크가 있습니다.

관련 문제