[jsf] JSF 구성 요소를 조건부로 표시

첫째, 저는 Java EE를 처음 접했으며 강력한 ASP .NET 개발 배경에서 왔습니다. 나는 그물을 훑어 보았고 이것을 놓칠 수도 있지만 backing bean 클래스를 JSF 구성 요소에 연결할 수있는 방법에 대한 간단하고 직접적인 자습서가없는 것 같습니다.

좋은 예는 다음과 같습니다. 현재 메뉴 모음과 양식 세트로 링크 세트가있는 JSF 페이지를 작성하려고합니다. 내가 할 계획은 링크를 클릭하면 특정 양식이 렌더링되는 것입니다.

ASP.NET에서는 요소를 쉽게 검색 한 다음 특성을 표시 가능하도록 설정할 수 있습니다. JSF에서 쉽게 수행 할 수있는 방법이 있는지 궁금합니다.

양식은 이미 페이지에 있으며 특정 링크를 클릭 할 때 “render”속성을 true로 설정하기 만하면됩니다.



답변

예, rendered속성을 사용하십시오 .

<h:form rendered="#{some boolean condition}">

일반적으로 모델이 구성 요소를 잡고 조작하도록하는 대신 모델에 연결합니다.

<h:form rendered="#{bean.booleanValue}" />
<h:form rendered="#{bean.intValue gt 10}" />
<h:form rendered="#{bean.objectValue eq null}" />
<h:form rendered="#{bean.stringValue ne 'someValue'}" />
<h:form rendered="#{not empty bean.collectionValue}" />
<h:form rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:form rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />

의 중요성 참고 키워드 기반 EL 사업자gt, ge, le그리고 lt대신의 >, >=, <=<꺾쇠 괄호 등을 <하고 >XML 문자를 예약되어 있습니다. 관련 Q & A : XHTML 구문 분석 오류 : 요소의 콘텐츠는 올바른 형식의 문자 데이터 또는 마크 업으로 구성되어야합니다 .

특정 사용 사례와 관련하여 링크가 아래와 같은 매개 변수를 전달한다고 가정 해 보겠습니다.

<a href="page.xhtml?form=1">link</a>

그런 다음 아래 양식을 표시 할 수 있습니다.

<h:form rendered="#{param.form eq '1'}">

( 요청 매개 변수를 #{param}나타내는를 참조하는 암시 적 EL 객체입니다. Map)

또한보십시오:


답변

이전 게시물 외에도

<h:form rendered="#{!bean.boolvalue}" />
<h:form rendered="#{bean.textvalue == 'value'}" />

JSF 2.0


답변