Mojarra 2.2.13을 사용 중이며 내 프로젝트는 PrimeFaces 6.0을 사용합니다.addComponentResource를 사용하여 JSF 리소스 (JavaScript)를 렌더링하지 않았습니다.
저는 자체 JSF UIComponent
을 쓰고 있습니다. webapp/resources/js/charts.min.js
에 약간의 JavaScript가 있어야합니다. 내가 @ResourceDependency
스크립트 렌더링 입니다 사용하여 내 구성 요소에 주석을 달 때 :
@ResourceDependency(name = "js/charts.min.js", target = "head")
을, 나는 항상 렌더링 할 필요가 없습니다. 그래서 조건부 encodeBegin(FacesContext context)
방법 내에서보기 루트에 구성 요소 리소스를 추가하려고했다 :
if (condition) {
UIOutput js = new UIOutput();
js.setRendererType("javax.faces.resource.Script");
js.getAttributes().put("name", "js/charts.min.js");
context.getViewRoot().addComponentResource(context, js, "head");
writer.startElement("div", null);
writer.writeAttribute("class", "myChart", null);
// ... write chart data
writer.endElement("div");
}
이 하지 스크립트 렌더링 않습니다 (myChart
것은 비록 렌더링입니다). 로그에 오류가 표시되지 않습니다. 내가 점검하거나 개선 할 수있는 아이디어가 있습니까?
PrimeFaces 없이도 테스트했는데 (헤드 렌더러가이 문제를 일으키는 지 확실하지 않음) 결과는 동일합니다.
당신은 시도해 봤어 JSTL 태그 대신 자바 코드 설정? –
@ TheBitman no. UIComponent를 만들 때 어떻게 도움이됩니까? –
JSF 파일에서 컴포넌트 대신 js 링크를 필터링 할 수 있다고 생각했습니다. 하지만 전 완전히 당신의 질문을 이해하지 못한다는 사실을 말해주세요 :) –