2014-12-18 4 views
1

JSF를 피할 수없는 많은 해를 거치면서 마침내 문제가 생겼습니다. JSTL 세계에서는 ${requestScope['big-bad-invalid-name']}을 사용하여 이름에 하이픈을 사용하여 쉽게 참조 할 수 있습니다. 그러나 그것은 <ui:param>과 함께 작동하지 않는 것 같습니다 (또는 나는 잘못된 객체로 시작할 것입니다 - 가능성있는 문제).이름에 하이픈이 포함 된 ui : params를 참조하십시오.

<html xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:c="http://java.sun.com/jsp/jstl/core"> 
    <ui:composition template="/WEB-INF/template/main.xhtml"> 
     <ui:param name="require-data-main" value="/something" /> 
     <ui:define name="content">...</ui:define> 
    </ui:composition> 
</html> 

는 슬프게도 나는 #{require-data-main}는 하이픈으로 인해 흥분하는 것 때문에 내 PARAM을 참조하는 방법을 알아낼 수 없습니다 :

나는 템플릿을 참조 할 것 간단한 파일이 있습니다. 나는 #{param['require-data-main']}, #{viewScope['require-data-main']}, #{pageScope['require-data-main']}, #{applicationScope['require-data-main']}을 시도했습니다. 내 param은 어디에도 존재하지 않는 것 같습니다.

업데이트 # 1 - 하이픈이없는 다른 매개 변수 (낙타의 경우)를 만들었습니다. 위에서 시도한 것처럼 가치를 해결할 수있는 방법은 없습니다. 그러나 일반 #{requireDataMain}이 그랬습니다. 이미 많은 수의 JSP가 작성되어 있습니다. 그래서 변수 이름을 바꾸는 데별로 열의가 없습니다. 나는 여전히 이름에 하이픈을 사용하여 param을 참조하는 방법을 찾고 싶습니다.

아무도 내 매개 변수를 보지 못했습니까? param을 검색하는 다른 방법이 있습니까?

답변

-1

JSF 페이지는 관리되는 Bean을 사용하여 Java 코드에 액세스해야합니다. 당신이 당신의 JSF 페이지에 대한 컨트롤러 클래스가있는 경우, 당신은 EL 사용 JSF 그것을 주입 수 : 내가 제대로 문제를 이해

@ManagedBean(name = "managedbean") 
public class YourBean { 
    private String field; 
    //getter and setter for field 
} 

희망 : managedbean는 다음 클래스가 #{managedbean.field}.

+1

귀하의 성명서에 동의하지는 않지만 실제로 질문에 답변하지는 않습니다. 관리 빈은보기와 분리해야하는 논리가있을 때 유용합니다. 제가 말하는 것은 실제로 뷰 자체 (템플릿 측면)에만 적용됩니다. 템플릿을 사용하여 각 뷰에 대한 관리 빈을 필요로하는 것은 끔찍한 일입니다. – nstoddar74

+0

지금 이해하십시오. [이 링크] (http://www.mkyong.com/jsf2/how-to-pass-parameters-to-jsf-2-0-template-file/)를보십시오, 나는 그것이 당신의 질문에 완전히 대답한다고 생각합니다. – Everv0id

+0

여전히 도움이되지 않습니다 (내 질문에 전혀 답하지 않습니다). 나는 'ui : param'요소를 사용하는 방법을 안다. 나는 단지 이름에 하이픈이있는 params를 참조하는 것을 모른다. – nstoddar74

관련 문제