Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf ui中的commandLink操作:未调用组合_Jsf_Jsf 2 - Fatal编程技术网

Jsf ui中的commandLink操作:未调用组合

Jsf ui中的commandLink操作:未调用组合,jsf,jsf-2,Jsf,Jsf 2,我有一个页面,左边是菜单,右边是内容 左菜单中的每个commandLink都会更改内容片段,并激活更新当前用户详细信息的功能(每个): 在profile.xhtml中: 在ui中:组合标签 <ui:define name="menuLeft"> <div id="Div2" style="width:172px; padding: 0; font-size: 10px; float:left"> <ui:include

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

在profile.xhtml中: 在ui中:组合标签

<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"/>
<h:panelGroup id="profileContentSnippet" >
    <ui:include  src="#{snippetsProfileLinkerBean.snippetFileName}"/>
</h:panelGroup>
<ui:include src="/users/source/profile/leftMenu/menu.xhtml"/>
          <h:commandLink value="ViewProfilePersonalDetails" action="#{usersController.prepareConnected}">
         <f:param  name="pageViewId" value="ViewProfilePersonalDetails"/>
         <f:ajax render="main:profileContentSnippet"  />  
      </h:commandLink> 
      <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"  />
   <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>

在content.xhtml中: 在ui中:组合标签

<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"/>
<h:panelGroup id="profileContentSnippet" >
    <ui:include  src="#{snippetsProfileLinkerBean.snippetFileName}"/>
</h:panelGroup>
<ui:include src="/users/source/profile/leftMenu/menu.xhtml"/>
          <h:commandLink value="ViewProfilePersonalDetails" action="#{usersController.prepareConnected}">
         <f:param  name="pageViewId" value="ViewProfilePersonalDetails"/>
         <f:ajax render="main:profileContentSnippet"  />  
      </h:commandLink> 
      <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"  />
   <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>

在profileleft.xhtml中 在ui中:组合标签

<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"/>
<h:panelGroup id="profileContentSnippet" >
    <ui:include  src="#{snippetsProfileLinkerBean.snippetFileName}"/>
</h:panelGroup>
<ui:include src="/users/source/profile/leftMenu/menu.xhtml"/>
          <h:commandLink value="ViewProfilePersonalDetails" action="#{usersController.prepareConnected}">
         <f:param  name="pageViewId" value="ViewProfilePersonalDetails"/>
         <f:ajax render="main:profileContentSnippet"  />  
      </h:commandLink> 
      <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"  />
   <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>

在menu.xhtml中: 在ui中:组合标签

<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"/>
<h:panelGroup id="profileContentSnippet" >
    <ui:include  src="#{snippetsProfileLinkerBean.snippetFileName}"/>
</h:panelGroup>
<ui:include src="/users/source/profile/leftMenu/menu.xhtml"/>
          <h:commandLink value="ViewProfilePersonalDetails" action="#{usersController.prepareConnected}">
         <f:param  name="pageViewId" value="ViewProfilePersonalDetails"/>
         <f:ajax render="main:profileContentSnippet"  />  
      </h:commandLink> 
      <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"  />
   <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>

在editPersonalDetails-snippet.xhtml中: 在ui中:组合标签

<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"/>
<h:panelGroup id="profileContentSnippet" >
    <ui:include  src="#{snippetsProfileLinkerBean.snippetFileName}"/>
</h:panelGroup>
<ui:include src="/users/source/profile/leftMenu/menu.xhtml"/>
          <h:commandLink value="ViewProfilePersonalDetails" action="#{usersController.prepareConnected}">
         <f:param  name="pageViewId" value="ViewProfilePersonalDetails"/>
         <f:ajax render="main:profileContentSnippet"  />  
      </h:commandLink> 
      <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"  />
   <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>

在viewPersonalDetails-snippet.xhtml中: 在ui中:组合标签

<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"/>
<h:panelGroup id="profileContentSnippet" >
    <ui:include  src="#{snippetsProfileLinkerBean.snippetFileName}"/>
</h:panelGroup>
<ui:include src="/users/source/profile/leftMenu/menu.xhtml"/>
          <h:commandLink value="ViewProfilePersonalDetails" action="#{usersController.prepareConnected}">
         <f:param  name="pageViewId" value="ViewProfilePersonalDetails"/>
         <f:ajax render="main:profileContentSnippet"  />  
      </h:commandLink> 
      <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"  />
   <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是具有PrepareProfileConnection函数的请求bean,该函数使用DB中的用户详细信息更新她选择的fild。 SnippetsProfileLinkBean是一个请求bean,它有两个获取代码段文件名的选项:通过f:param或使用action(ActionEvent)函数

当我在左菜单中单击“一切正常”时,我得到了代码段,并看到了用户ID。 最大的问题是当我在同样需要的代码段文件中单击编辑或视图时 要激活函数以获取用户详细信息并更改代码段,在某些情况下,
h:代码段中的commandLink根本不起作用

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

此外,在进行一些测试后,我发现当前ui组合的on可能没有插入(尽管已查看)到页面第一个请求中的控件树中(请求相同的页面)。是否有任何方法可以将ui组合动态添加到控件树(jsp根)?此外,在进行一些测试后,我发现当前ui组合的on可能没有在页面的第一个请求(请求相同的页面)中插入(尽管已查看)到控件树中。有没有办法将ui组合动态添加到控件树(jsp根目录)中?