jsf中的ajax技术

在“jsf2入门demo”基础上使用ajax
index.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich">
<h:head>
        <title>Welcome</title>
</h:head>
<h:body>
    <h:form>
        <h3>please enter your name and password</h3>
        <table>
            <tr>
                <td>Name:</td>
                <td><h:inputText value="#{user.name}" id="name"></h:inputText></td>
            </tr>
            <tr>
                <td>Password:</td>
                <td><h:inputSecret value="#{user.password}" id="password"></h:inputSecret></td>
            </tr>
        </table>
        <p>
            <h:commandButton value="Login">
                <f:ajax execute="name password" render="out"></f:ajax>
            </h:commandButton>
        </p>
        <h3><h:outputText id="out" value="#{user.greeting}"></h:outputText></h3>
    </h:form>
</h:body>
</html>

user Bean中增加

  public String getGreeting() {
        if(name.length()==0)
            return " ";
        return "welcome to jsf2 + ajax " + name;
    }

这里写图片描述

当用户单击login时,表单并未提交,一个ajax请求发送到服务器
execute和render指定了组件id的列表。如同表单已经被提交一样处理execute组件。他们的值被发送到服务器,并更新相应的bean属性

ajax请求将输入组件添加到execute列表中,将输出组件添加到render列表中。对execute列表中的组件来说,会执行除“呈现响应”外的所有阶段,在“更新模型值”阶段,会更新模型bean,于此相反,对于render列表中的组件来说,仅执行生命周期的“呈现响应”阶段,结果被发回到ajax请求。
关于 jsf生命周期,参考博客中jsf分类下的“jsf架构”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值