JSF - Ajax

Ajax: A Brief Introduction

  • AJAX stands for Asynchronous JavaScript And Xml.

  • Ajax is a technique to use HTTPXMLObject of JavaScript to send data to server and receive data from server asynchronously.

  • So using Ajax technique, javascript code exchanges data with server, updates parts of web page without reloading the whole page.

JSF provides execellent support for making ajax call. It provides f:ajax tag to handle ajax calls.

JSF Tag


<f:ajax execute="input-component-name" render="output-component-name" />

Tag Attributes

S.N.Attribute & Description
1disabled

If true, the Ajax behavior will be applied to any parent or child components. If false, the Ajax behavior will be disabled.

2event

The event that will invoke Ajax requests, for example "click", "change", "blur", "keypress", etc.

3execute

A space-separated List of IDs for components that should be included in the Ajax request.

4immediate

If "true" behavior events generated from this behavior are broadcast during Apply Request Values phase. Otherwise, the events will be broadcast during Invoke Applications phase

5listener

An EL expression for a method in a backing bean to be called during the Ajax request.

6onerror

The name of a JavaScript callback function that will be invoked if there is an error during the Ajax request

7onevent

The name of a JavaScript callback function that will be invoked to handle UI events.

8render

A space-separated list of IDs for components that will be updated after an Ajax request.

Example Application

Let us create a test JSF application to test the custom component in JSF.

StepDescription
1Create a project with a name helloworld under a package com.tutorialspoint.test as explained in the JSF - First Application chapter.
2Modify UserData.java file as explained below.
3Modify home.xhtml as explained below. Keep rest of the files unchanged.
4Compile and run the application to make sure business logic is working as per the requirements.
5Finally, build the application in the form of war file and deploy it in Apache Tomcat Webserver.
6Launch your web application using appropriate URL as explained below in the last step.

UserData.java

package com.tutorialspoint.test;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "userData", eager = true)
@SessionScoped
public class UserData implements Serializable {

   private static final long serialVersionUID = 1L;

   private String name;
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }

   public String getWelcomeMessage(){
      return "Hello " + name;
   }
}

home.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!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:tp="http://java.sun.com/jsf/composite/tutorialspoint">
   <h:head>
      <title>JSF tutorial</title>
   </h:head>
   <h:body>
      <h2>Ajax Example</h2>
      <h:form>
      <h:inputText id="inputName" value="#{userData.name}"></h:inputText>
       <h:commandButton value="Show Message">
         <f:ajax execute="inputName" render="outputMessage" />
      </h:commandButton>
      <h2><h:outputText id="outputMessage"
         value="#{userData.welcomeMessage !=null ?
            userData.welcomeMessage : ''}"
         /></h2>
      </h:form>
   </h:body>
</html>
Once you are ready with all the changes done, let us compile and run the application as we did in JSF - First Application chapter. If everything is fine with your application, this will produce following result:

Enter name and press Show Message button. You will see the following result without page refresh/form submit.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值