JavaServer Faces中的Ajax

时间:2014-03-05 14:13:07

标签: ajax jsf

我正在尝试在jsf中使用ajax。 所以,我有inputtextarea和datatable:

<h:form>
    <h:inputTextarea id="mailstextarea" style="width:100%" value="#{newMembersBean.newMembersStr}">
        <f:ajax event="keyup" render="newmembertable" execute="mailstextarea" />
    </h:inputTextarea>

    <h:dataTable id="newmembertable" styleClass="tableWidth" value="#{newMembersBean.newMembers}" var="member">
        <h:column>
            <f:facet name="header">#{msgs.name}</f:facet>
            #{member.name}
        </h:column>
        <h:column>
            <f:facet name="header">#{msgs.surename}</f:facet>
            #{member.sureName}
        </h:column>
        <h:column>
            <f:facet name="header">#{msgs.email}</f:facet>
            #{member.email}
        </h:column>
        <h:column>
            <f:facet name="header">#{msgs.phone}</f:facet>
            #{member.phone}
        </h:column>
    </h:dataTable>
    <h:commandButton type="submit" value="#{msgs.add}"/>
</h:form>

我想在textarea中的每个值更改中更改newMembersBean.newMembers列表(和数据表newmembertable)... 在我的bean中,我正在尝试做这样的事情(现在仅用于测试,我想向所有用户显示,如果用户键入了超过3个字符):

@Named
@ConversationScoped
public class NewMembersBean implements Serializable {
    private List<UsersEntity> newMembers = new ArrayList<UsersEntity>();
    private String newMembersStr = "";
    ......
    public List<UsersEntity> getNewMembers() {
        UsersDao ud = new UsersDao();
        if(newMembersStr.length() > 3)
        {
            newMembers = ud.getAllUsers();
        }
        return newMembers;
    }
   .....
}

但是当我在textare中输入文字时,没有任何反应。 请帮忙。 感谢。

0 个答案:

没有答案