【问题标题】:Passing <p:inputText> values to Bean using ajax使用 ajax 将 <p:inputText> 值传递给 Bean
【发布时间】:2013-08-31 12:54:04
【问题描述】:

我有h:inputText,它有一个文本,并通过 ajax 请求我如何将它的值发送到bean 类,这些值将在 bean 类开始的进一步操作中得到验证..

查看页面代码是

<h:form>  
<p:panel id="panel" header="Login Panel" style="margin:0 auto;width:350px;margin-top:15%;">  
      <p:panelGrid columns="3"  id="pgrid1" styleClass="theme"  >  
          <p:outputLabel  value="User Name:" />  
          <p:inputText id="name" value="#{loginBean.name}"  required="true" requiredMessage="Name is required">
               <f:ajax event="blur" render="label" listener="loginBean.validateName" ></f:ajax>
               <!--Here the ajax event working properly but how can i get the inputText value when ajax event  is invoked-->
           </p:inputText>  
           <p:message for="name"  style="color: red;" />
    </p:panelGrid>
    <p:commandButton type="Submit" value="Submit" action="#{loginBean.validate}" update="pgrid1"  />
</p:panel>  

我的 Bean 类代码是:

 public void validateName(AjaxBehaviorEvent e) 
{
    //Here i need inputText value..how can i handle this task..!!
}

【问题讨论】:

    标签: ajax jsf jsf-2


    【解决方案1】:

    当时JSF 已经设置了#{loginBean.name} 的值。直接访问即可。

    public void validateName(AjaxBehaviorEvent e) 
    {
        System.out.println(name); // Look, JSF has already set it.
        // ... 
    }
    

    顺便说一下,&lt;f:ajax listener&gt; 中的 EL 语法错误导致永远不会调用侦听器方法,但我敢打赌,这只是在准备问题时的粗心,因为你提到它“工作正常” ”。以后的问题,请在真实开发环境中编辑代码并复制粘贴真实工作代码,而不是在问题编辑器中盲目编辑代码。

    【讨论】:

    • 在我的问题中,我提到了 ajax 监听器只为 renderlabel 工作。但是在我的 bean 类中,当我打印上面提到的 name 时,它返回null
    • 这里我在鼠标离开inputText 字段时使用了ajax 监听器。所以我在textField 中输入了一些内容,当我点击“点击”时,它应该被称为@ bean 中的 987654332@ 方法,但它没有调用“侦听器”..我不知道为什么会这样..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 2013-05-26
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多