2012-04-02 3 views
9

안녕하세요는 "JSF가 정의되지 않은"무엇의 원인이 브라우저 콘솔에서 오류가

톰캣 6 Primefaces 3.0에서 MyFaces 2.0.11을 기반으로 간단한 신선한 프로젝트를 가지고 '내 js 코드 jsf.ajax.addOnEvent에있는 심판을 지시하는 Uncaught ReferenceError: jsf is not defined 오류가 발생합니다. (이는 jsf.js를 사용하려고하는 합당한 이유이며, 내 현재 페이지가 아닙니다.)

그리고 내가 내 페이지의 소스를 보지 않는다면 파일의 포함을하지 말아야한다.

내가 수동으로 이것을 다음과 같이 추가하면

<h:outputScript name="jsf.js" library="javax.faces" target="head"/>

모든 일이 잘 작동합니다 ...하지만 대신 내 페이지

에 jsf.js의 부족을 일으킬 수있는 이유가 무엇인지 알고 싶습니다 수동으로 포함하지 않으려는

... 내가 내 페이지가 정말 간단 <h:head><h:body>이 있습니까

어떤 아이디어를 내가 잠시 동안 구글과 유사한 사건의 아무도 내에게

을 대표하지?

+0

페이지에 h : head가 있으면 스크립트 *가 있어야합니다. 예를 들어 그 안에 제목을 넣어서 어떻게 든 건너 뛰지 않았는지 확인하십시오. –

+0

제목 추가 ... 제목이 제대로 표시되고 있지만 jsf.js가 아직 추가되지 않았습니다 ... – Daniel

답변

7

이 스크립트는보기에서 <f:ajax>을 사용할 때마다 자동으로 포함됩니다. 그렇지 않으면 자동 포함되지 않습니다. 이미했던 것처럼 같은 명시 적으로 적절한 library<h:outputScript>하여 라이브러리를 포함,

if (typeof jsf !== 'undefined') { 
    jsf.ajax.addOnEvent(someFunctionName); 
} 

을 또는 :

그냥 당신이 jsf.ajax.addOnEvent를 호출하기 전에 추가 검사를 추가합니다.

+0

매력처럼 작동합니다! 그리고 이해해라 :) 고마워! – Daniel

+0

@ BalusC 나는이 방법을 사용하여 동일한 오류를 우회하려고했지만 아무 소용이 없었다. 나는 여전히 같은 메시지를 얻었고이 수표를 가지고 스크립트가 클라이언트에서 올바르게 형성되었음을 확인했습니다. – Stephan

관련 문제