【问题标题】:How to set parameters in managed bean from JavaScript in PrimeFaces如何在 PrimeFaces 中的 JavaScript 中设置托管 bean 中的参数
【发布时间】:2013-09-11 21:44:41
【问题描述】:

我有两个自动完成字段,如下所示。我使用命令按钮交换自动完成值。我需要保留交换的值。

    <p:column colspan="2" rendered="#{empty contactController.selectedContact}">
         <p:autoComplete id="contactName1" value="#{newContactRs.contact}"
                         completeMethod="#{contactRelationshipController.completeContacts}"
                         var="contact" itemLabel="#{contact.fullName}"
                         itemValue="#{contact}" converter="#{contactConverter}"
                         forceSelection="true" size="35" scrollHeight="200"
                         panelStyle="width:10px;">
              <p:ajax event="itemSelect" update="contactName1" />
          </p:autoComplete>
          <p:commandButton icon="ui-icon-arrow-2-e-w" id="flipButton" 
                           styleClass="ui-panel-titlebar-icon" oncomplete="swapInput()"              update="addNewContactRelationshipPanel" immediate="true"/>
          <smith:contactSelector value="#{newContactRs.contact}" update=":addContactRelationshipForm:addNewContactRelationshipPanel" triggerId="existingContactSelector1" resultList="#{contactRelationshipController.selectAllContact1}"/>
   </p:column>

   <p:column colspan="2">
        <p:autoComplete id="contactName2" value="#{newContactRs.relatedContact}"
                        completeMethod="#{contactRelationshipController.completeContacts}"
                        var="contact" itemLabel="#{contact.fullName}"
                        itemValue="#{contact}" converter="#{contactConverter}"
                        forceSelection="true" size="35" scrollHeight="200"
                        panelStyle="width:10px;">
             <p:ajax event="itemSelect" update="contactName2" />
         </p:autoComplete>
    <smith:contactSelector value="#{newContactRs.relatedContact}" update=":addContactRelationshipForm:addNewContactRelationshipPanel" triggerId="existingContactSelector2" resultList="#{contactRelationshipController.selectAllContact2}"/>
    </p:column>

在单击 id 为“flipButton”的命令按钮后调用 javascript 并交换自动完成字段的值

function swapInput()
{
    var input_a =document.getElementById('addContactRelationshipForm:contactName1_input').value; 
    var input_b =document.getElementById('addContactRelationshipForm:contactName2_input').value;

    document.getElementById('addContactRelationshipForm:contactName1_input').value = input_b;
    document.getElementById('addContactRelationshipForm:contactName2_input').value = input_a;
}

交换值后,我试图保留交换的值,但保留原始值而不是交换值。我必须在支持 bean 中设置交换的值,但不知道如何使用 javascript 或 primefaces。

【问题讨论】:

    标签: javascript jsf primefaces


    【解决方案1】:

    您可以使用 Preimefaces p:remoteCommand 来执行托管 bean 方法。 https://www.primefaces.org/showcase/ui/ajax/remoteCommand.xhtml

    【讨论】:

      【解决方案2】:

      commandButton改成

      <p:commandButton icon="ui-icon-arrow-2-e-w" 
                       id="flipButton" 
                       styleClass="ui-panel-titlebar-icon" 
                       oncomplete="swapInput()" 
                       update="addNewContactRelationshipPanel" 
                       immediate="true" 
                       process="@this" 
                       actionListener="#{contactRelationshipController.setSwapInputFlag()}"/>
      

      然后在保留自动完成字段的同时检查swapInputFlag

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-03
        • 1970-01-01
        • 2012-05-22
        • 2014-02-03
        相关资源
        最近更新 更多