1

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..!!
}
4

1 回答 1

3

JSF 已经#{loginBean.name}在那个时候设置了这个值。直接访问就行了。

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

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

于 2013-08-31T13:05:12.830 回答