ui中的commandLink操作:不调用合成

时间:2011-07-09 10:14:53

标签: jsf jsf-2

我的页面左侧是菜单,右侧是内容 左侧菜单中的每个commandLink都会更改内容的片段并激活更新当前用户详细信息的功能(每个):

在profile.xhtml中: in ui:composition tag。

<ui:define name="menuLeft">
        <div id="Div2" style="width:172px; padding: 0; font-size: 10px; float:left">
                <ui:include src="/users/sections/profile/profileleft.xhtml"/>
        </div>
</ui:define>

<ui:define name="content">
        <div id="Div3" style="background-color:white; width: 708px; height:1208px; padding: 0; font-size: 12px; float:left">
                <ui:include src="/users/sections/profile/content.xhtml"/>
        </div>
</ui:define>

<ui:define name="menuRight"/>
在content.xhtml中

: in ui:composition tag。

<h:panelGroup id="profileContentSnippet" >
    <ui:include  src="#{snippetsProfileLinkerBean.snippetFileName}"/>
</h:panelGroup>

在profileleft.xhtml中 in ui:composition tag。

<ui:include src="/users/source/profile/leftMenu/menu.xhtml"/>
menu.xhtml中的

: in ui:composition tag。

          <h:commandLink value="ViewProfilePersonalDetails" action="#{usersController.prepareConnected}">
         <f:param  name="pageViewId" value="ViewProfilePersonalDetails"/>
         <f:ajax render="main:profileContentSnippet"  />  
      </h:commandLink> 

在editPersonalDetails-snippet.xhtml中: in ui:composition tag。

      <h:outputText value="#{bundle.ViewUsersLabel_userID}"/>
           <h:outputText value="#{usersController.selected.userID}" title="# {bundle.ViewUsersTitle_userID}"/>

      <h:commandLink action="#{usersController.prepareProfileConnected}" value="view" actionListener="#{snippetsProfileLinkerBean.action}">
                   <f:attribute name="pageToViewId" value="ViewProfilePersonalDetails" />
                   <f:ajax render="main:profileContentSnippet"  />

在viewPersonalDetails-snippet.xhtml中: in ui:composition tag。

   <h:commandLink action="#{usersController.prepareProfileConnected}" value="edit" actionListener="#{snippetsProfileLinkerBean.action}">
                   <f:attribute name="pageToViewId" value="EditProfilePersonalDetails" />
                   <f:ajax render="main:profileContentSnippet"  />

   <h:outputText value="#{bundle.ViewUsersLabel_userID}"/>
   <h:outputText value="#{usersController.selected.userID}" title="#{bundle.ViewUsersTitle_userID}"/>


  </h:commandLink>

usersController是具有prepareProfileConnected函数的请求bean,该函数使用来自DB的用户详细信息更新其选定的fild。 snippetsProfileLinkerBean是请求bean,它有两个获取代码段文件名的选项:f:param或使用action(ActionEvent事件)函数。

当我点击左侧菜单时,一切正常,我得到了片段,我看到了用户ID。 大问题当我点击片段文件中的编辑或视图时,还需要 激活功能以获取用户详细信息和更改片段,在某些情况下为 h:片段中的commandLink根本不起作用。

我如何在代码段中激活h:commandLink - 这将更改代码段文件 调用usersController中的函数来更新用户详细信息?

0 个答案:

没有答案