매개 변수를 전달한 jsp 하위 뷰 페이지가 있고이 매개 변수를 세션 빈에 저장된 맵의 get() 메소드에 전달하려고합니다.JSF 백킹 맵 오브젝트 액세스
예 : 위의 예제 MySessionBean에서
<h:panelGrid id="panelGrid1" rendered="#{MySessionBean[param.id].showPanelGrid1}">
...
</h:panelGrid>
는 Map 인터페이스를 구현하고 나는 객체를 생성하고 아무도 키 [PARAMS 존재하지 않는 경우는 맵에 넣어 것입니다 내 자신의 사용자 정의 get 메소드를 가지고있다. 신분증]. 디버그 모드에서 코드를 실행하면 MySessionBean의 get 메소드가 호출되지 않고 내 패널이 항상 렌더링됩니다. 매개 변수를 올바르게 전달하지 않습니까? 또는 하위 뷰 correclty에 전달 된 매개 변수에 액세스합니까? 여기
내가이 서브 뷰에 매개 변수를 전달하는 방법입니다
<f:subview id="subview1">
<jsp:include page="/MyTemplatePage.jsp">
<jsp:param name="id" value="staticUniqueId1"/>
</jsp:include>
</f:subview>
나는 각 인스턴스 원 있도록이 내가 한 페이지에서이 템플릿 서브 뷰를 여러 번 포함 할 수 있도록이다 할 노력하고있어 이유 같은 backing bean 객체를 가지고 있지 않습니다. 따라서 세션에서 맵을 사용하고 ID를 전달하여 각 인스턴스의 백킹 빈에 액세스 할 수 있습니다.
또한 제한적인 JSF 1.2, JSTL 1.1, JBoss 4.0.4입니다. 그래서 RichFaces 나 JSF를 사용하여 답변을 사용할 수 없습니다 2.
편집 : 11시 23분
11/22/11 내가 정적 문자열 값으로 [param.id] 대체되었습니다.
<h:panelGrid id="panelGrid1" rendered="#{MySessionBean.MY_TEMP_VAL.showPanelGrid1}">
...
</h:panelGrid>
모든 것이 작동했습니다. 그것은 내 맵 get 메소드를 트리거하고 세션 빈과 모든 것을 액세스했습니다. 따라서 [params.id]를 사용하여 전체를 선호하지 않는 것은 분명합니다. 여기에서 무엇을해야할지 모르겠습니다.
내가의 예외를 geeting있어합니다. 나는 그것이 태그 속성 myBean = "# {myBeanInstance1}"에서 EL을 좋아하지 않는다고 생각한다. 커스텀 JSF 태그에 대한 다른 예제를 찾으려고 노력했으며, 그것들은 tld 파일에 설명 할 때 태그에 backing 빈을 할당하려고합니다. 하지만 jspx 파일을 사용하여 내용을 설명하고자합니다. – Nikordaris