저는 JSF를 처음 사용하고 include 및 param의 작동 방식을 이해하려고했지만 막혔습니다. 어떤 도움이라도 대단히 감사합니다.ui : param의 매개 변수가 전달되지 않았습니다.
2 개의 간단한 페이지 (테스트 용), Page1.xhtml 및 Page2.xhtml이 있습니다. Page1에 Page2를 포함하고 싶습니다. Page2를 직접 호출하면 올바르게 전달 된 매개 변수를 볼 수 있지만 Page1을 호출하면 Page2가 매개 변수없이 포함됩니다. 아래는 코드입니다.
페이지 1 :
<h:body>
<h:form id="test">
<b>Page 1</b><br/>
<ui:include src="Page2.xhtml">
<ui:param name="id" value="123" />
</ui:include>
<b>End of Page 1</b>
</h:form>
페이지 2 : PageTestBean
<h:head>
<f:view contentType="text/html"></f:view>
</h:head>
<h:body>
<h:form>
<h:outputLabel for="ID" value="ID on Page2: "/>
<h:outputText id="ID" value="#{pageTestBean.id}"/>
</h:form>
</h:body>
</html>
: @ManagedBean 이 공용 클래스 PageTestBean {
private Long id=new Long(11111);
public void init() {
//doesn't do anything yet;
}
// Getters and Setters
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
을 @SessionScoped
매개 변수가 전달되지 않은 경우 기본값 인 "11111"이 아니라 Page1의 출력 ID로 "123"이 표시 될 것으로 예상됩니다. 그러나 항상 11111이 표시됩니다. 내 기대가 잘못 되었습니까? 모든
일단
yisa
포함 된 페이지는 독립적으로 액세스 할 수 없습니다. 매개 변수는 포함 페이지에서 포함 된 페이지로 정보를 전달하는 데 사용됩니다. 이 페이지들은 더 큰 그림의 조각처럼 작용합니다. JSF에서 컴포지션에 대한 완전한 이해를 얻으려면 필자의 대답에서 링크를 다시 읽으십시오. – skuntsel