2011-07-28 4 views
0

이 메뉴가 있습니다.JSF 2 : 논리 프로그래밍에 대한 도움말

<ul class="lavaLamp" id="menu"> 
    <li><a href="./index.xhtml" >Home</a></li> 
    <li class="current"><a href="#">Company</a> 
    //.. 
</ul> 

이 메뉴를 구성 요소로 지정하여 모든 .xhtml 페이지를 복사하여 붙여 넣을 필요가 없습니다. 하지만 <li> 태그의 클래스 필드를 지정해야하므로 'LavaLamp'플러그인을 적용 할 수 있습니다.

예 : 현재 페이지는 index.xhtml이므로 다음과 같이 생성해야합니다.

<ul class="lavaLamp" id="menu"> 
    <li class="current"><a href="./index.xhtml" >Home</a></li> 
    <li><a href="#">Company</a> 
    //.. 
</ul> 

어떻게 생각 하나?

어떤 생각?

답변

0

, 내가 그것에 대해 검색 및 EL의 원에 대해 뭔가를 발견, 그래서 이것은 내 해결책이다.

<ul class="lavaLamp" id="menu"> 
    <li class="#{facesContext.viewRoot.viewId == '/index.xhtml' ? 'current' : '' }"><a href="index.xhtml" >Home</a></li> 
    <li class="#{facesContext.viewRoot.viewId == '/pages/company/team.xhtml' ? 'current' : '' }"><a href="pages/company/team.xhtml" >Team</a></li> 
    //.. 
</ul> 
0

내 첫 리팩토링은 다음과 같습니다

<ul class="lavaLamp" id="menu"> 
    <li class="#{facesContext.viewRoot.viewId = 'index.html' ? 'current' : ''"><a href="./index.xhtml" >Home</a></li> 
    <li><a href="#">Company</a> 
    //.. 
</ul> 

(글로벌 엘 변수 facesContext 항상 FacesContext.getCurrentInstance()를 가리키는)

EL에 대한 @meriton 이야기 후

+0

이 예외가 시작된다 : javax.servlet.ServletException : /resources/components/top.xhtml 23,96 class = "# {facesContex t.viewRoot.viewId = 'index.html'? 'current': '' "EL Expression Unbalanced : ... # {facesContext.viewRoot.viewId = 'index.html'? 'current': '' –

+1

'}'이 누락되었습니다. 예 :

  • Home
  • 관련 문제