반응형
JSF 페이지에서 EL 변수 정의 및 재사용
변수를 정의하고 나중에 EL 표현식에서 변수를 재사용 할 수 있습니까?
예 :
<h:inputText
value="#{myBean.data.something.very.long}"
rendered="#{myBean.data.something.very.long.showing}"
/>
내가 염두에 둔 것은 다음과 같습니다.
<!--
somehow define a variable here like :
myVar = #{myBean.data.something.very.long}
-->
<h:inputText
value="#{myVar}"
rendered="#{myVar.showing}"
/>
어떤 아이디어? 감사합니다 !
<c:set>
이를 위해 사용할 수 있습니다 .
<c:set var="myVar" value="#{myBean.data.something.very.long}" scope="request" />
이 EL 표현식은 한 번 평가되고 요청 범위에 저장됩니다. 이는 뷰 빌드 시간 동안 값을 사용할 수있는 경우에만 작동합니다 . 그렇지 않은 경우 scope
속성 을 제거하여 진정한 "별칭"이되도록해야합니다.
<c:set var="myVar" value="#{myBean.data.something.very.long}" />
따라서 이것은 요청 범위에서 평가 된 값을 캐시 하지 않습니다 ! 매번 재평가됩니다.
마십시오 하지 사용 <ui:param>
. 또는에 template
정의 된대로에 매개 변수를 전달하기 위해 사용되지 않아 본질적으로이를 악용하면 동작이 지정되지 않으며 실제로 가능하다면 사용중인 JSF 구현의 버그가됩니다. 이것은 절대로 신뢰할 수 없습니다. JSF2 Facelets의 JSTL 도 참조하십시오 .<ui:composition>
<ui:decorate>
MVC의 다른보기와 마찬가지로 페이지는 가능한 한 단순 해야 합니다. 바로 가기를 원한다면 컨트롤러 ( @ManagedBean
또는 @Named
빈)에 바로 가기를 넣으십시오 .
제어 장치:
@Named
public MyBean
{
public Data getData()
{
return data;
}
public Foo getFooShortcut()
{
return data.getSomething().getVery().getLong();
]
}
전망:
<h:inputText
value="#{myBean.fooShortcut}"
rendered="#{myBean.fooShortcut.showing}"
/>
참조 URL : https://stackoverflow.com/questions/6434866/defining-and-reusing-an-el-variable-in-jsf-page
반응형
'developer tip' 카테고리의 다른 글
웹 인터페이스를 통해 리전간에 Amazon EC2 AMI를 이동합니까? (0) | 2020.12.29 |
---|---|
안전하지 않은 세계 쓰기 가능 디렉토리 / Users / username in PATH, mode 040777 when running Ruby commands (0) | 2020.12.29 |
저장소에 파일을 추가하는 힘내 (0) | 2020.12.29 |
ID 별 요소 오프셋으로 ScrollTop 실행 (0) | 2020.12.29 |
nodejs의 배열에 항목을 추가하는 방법 (0) | 2020.12.29 |