2013-11-10 2 views
0

내 netbeans에서 jsf 프로젝트를 가져 왔습니다. 라이브러리가 ./lib 폴더에 저장되었으므로 모든 해결 문제를 해결했습니다.JSF가 브라우저에서 HTML을 출력하지 않습니다.

프로젝트를 실행할 때 헤더의 한 줄만 표시되지만 링크는 브라우저에 표시되지 않습니다. 브라우저에서 html 소스를 확인한 결과, 다음과 같습니다.

<?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" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> 
    <h:head> 
     <title>Prototype of Engine</title> 
     <link rel="stylesheet" type="text/css" href="../includes/style.css" /> 
    </h:head> 
    <h:body> 
     <h1>Prototype I of Engine</h1> 
     <h3><h:link outcome="auto_cleanse" value="Start Auto Cleansing"></h:link></h3> 
     <h3><h:link outcome="data_transfer" value="Verify data for visit details"></h:link></h3> 
     <h3><h:link outcome="itemized_bill" value="Assign revenue codes to items in itemized bill"></h:link></h3> 
     <h3><h:link outcome="todo" value="TO DO List"></h:link></h3> 
    </h:body> 
</html> 

그래서 렌더링 유일한 가능성이 잘못되었을 수 있습니다 무엇 엔진의

프로토 타입 I

입니다. 고맙습니다.

답변

2

게시 한 내용이 브라우저의 HTML 소스 인 경우 JSF 태그가 여전히 연결되어있어 (예 : <h:link> 태그가 계속 포함되어 있기 때문에) 잘못된 것이 있습니다. 기본적으로 서버는 HTML이 아닌 XHTML 페이지를 다시 렌더링합니다. JSF 서블릿은 XHTML 페이지를 읽고 HTML을 다시 렌더링하므로 JSF 서블릿을 우회하는 요청 일 가능성이 큽니다.

JSF가 제대로 구성되지 않은 경우 발생할 수 있습니다. 귀하의 web.xml에 다음을 포함시켜야합니다.

<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> 
+0

나는 가지고있다

 Faces Servlet javax.faces.webapp.FacesServlet 1   Faces Servlet /faces/*  
Rajan

+0

나는 xhtml보기 파일이있다. 위의 태그가 web.xml에 있습니다. url-pattern을 * .xhtml로 변경하면 같은 출력을 보냅니다. – Rajan

+0

* .jsf 또는 * .xhtml (요청에 사용하는 것)에 대한 서블릿 매핑을 추가하십시오. "http : //..../test.jsf"로 페이지에 액세스하면 * .jsf 매핑을 추가하고, "http : //..../test.xhtml"로 액세스하면 *를 추가하십시오. xhtml 매핑. – gonzaw

0

귀하의 요청은 서블릿과 맞지 않는 문제입니다. 먼저 모든 구성 & 코딩이 서블릿에 요청을 보내는 것이 맞는지 확인해야합니다.

다른 jsf 페이지가 & 인 경우/faces /*.xhtml을 사용하십시오. 다른 페이지가 모두 jsf 페이지이면/*를 사용할 수도 있습니다.

JSF가 양식 요청으로 작동하므로 양식 태그 < h : link > 요소를 추가하여 요청이 faces 서블릿에 도달 할 수 있도록해야합니다.

0

좋아, 나는 내 동료들과 함께 따라 갔다. 동일한 코드가 자신의 PC에서 작동하지만 내 것이 아닙니다. 내 넷빈은 7.1.1이었다. 나는 최신 7.4 Java EE 에디션 넷빈을 다운로드했다. 그것은 netbeans의 이전 버전에 의해 표시되지 않은 classpath에없는 jstl11과 같은 속성 -> 라이브러리에서 약간의 오류를 보여주었습니다. 나는 그것을 선택하지 않았다. 또한 Frameworks 섹션에서 RichFaces의 선택을 취소했습니다. 이제 완벽하게 실행됩니다.

위의 답변은 코드가 문제가 아님을 분명히했기 때문에 도움이되었습니다. 구성 및 라이브러리 등과 관련이 있습니다.

시도해 주셔서 감사합니다.

관련 문제