2012-04-16 2 views
1

이 간단한 탐색기 코드가 onItemClick 이벤트의 sessionScope var에 아무 것도 추가하지 않는 이유는 무엇입니까? 대신 다음 HREF를 사용하여 해결 내가 매개 변수로 viewEntry.getName()를 전송하고로 http://xpages101.net/xpages101/XPages101.nsf/0/4DB7580AC6931682802579A7004E74E7xe : navigator 항목에서 submittedValue 받기

:

<xe:navigator id="navigator1">         
    <xe:this.treeNodes> 
     <xe:dominoViewListTreeNode filter="All.*" submitValue="#{javascript:return viewEntry.getName()}" var="viewEntry" href="page.xsp"> 
      <xe:this.databaseName><![CDATA[#{javascript:database.getServer() + "!!" + "path//db.nsf"}]]></xe:this.databaseName> 
     </xe:dominoViewListTreeNode> 
    </xe:this.treeNodes> 
                    
    <xp:eventHandler event="onItemClick" submit="true" refreshMode="complete"> 
     <xp:this.action><![CDATA[#{javascript:sessionScope.clickedView = context.getSubmittedValue()}]]></xp:this.action> 
    </xp:eventHandler> 
</xe:navigator> 

코드는 크게 XPages101 레슨 (71)에 의해 영감을

<xe:this.href><![CDATA[#{javascript:"page.xsp?view="+viewEntry.getName();}]]></xe:this.href> 

답변

3

,

hrefxe : dominoViewLi stTreeNode은 서버 측 이벤트가 전혀 실행되지 않도록합니다. 노드를 클릭하면 선택한 페이지 (page.xsp)에 HTTP GET이 수행됩니다. 당신이 그것을 제거하고 서버 측 코드에서 사용자를 리디렉션 경우 샘플 작업을해야합니다 :

<xe:navigator id="navigator1">   
    <xe:this.treeNodes> 
    <xe:dominoViewListTreeNode filter="All.*" submitValue="#{javascript:return viewEntry.getName()}" var="viewEntry"> 
     <xe:this.databaseName><![CDATA[#{javascript:database.getServer() + "!!" + "path//db.nsf"}]]></xe:this.databaseName> 
    </xe:dominoViewListTreeNode> 
    </xe:this.treeNodes> 

    <xp:eventHandler event="onItemClick" submit="true" refreshMode="complete"> 
    <xp:this.action> 
     <![CDATA[#{javascript:sessionScope.clickedView = context.getSubmittedValue(); 
    context.redirectToPage("page");}]]> 
    </xp:this.action> 
    </xp:eventHandler> 
</xe:navigator> 

또 다른 팁 : 당신이에 submitValue 속성의 수식을 단축 할 수있는 표현 언어를 사용 :

submitValue="#{viewEntry.name}" 
+0

아,의 코스! 클라이언트 측은 항상 서버 측보다 우선합니다. 고마워, 마크. 나는 나중에 시험하고 받아 들일 것이다. –