zoukankan      html  css  js  c++  java
  • JSF 2.0 + Ajax hello world example

    In JSF 2.0, coding Ajax is just like coding a normal HTML tag, it’s extremely easy. In this tutorial, you will restructure the last JSF 2.0 hello world example, so that, when the button is clicked, it will make an Ajax request instead of submitting the whole form.

    1. JSF 2.0 Page

    A JSF 2.0 xhtml page with Ajax support.

    helloAjax.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:f="http://java.sun.com/jsf/core"      
          xmlns:h="http://java.sun.com/jsf/html">
    	
        <h:body>
        	<div><div class="ads-in-post hide_if_width_less_800">
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <!-- 728x90 - After1stH4 -->
    <ins class="adsbygoogle hide_if_width_less_800" 
         style="display:inline-block;728px;height:90px"
         data-ad-client="ca-pub-2836379775501347"
         data-ad-slot="7391621200"
         data-ad-region="mkyongregion"></ins>
    <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
    </div></div><h2>JSF 2.0 + Ajax Hello World Example</h2>
        	
        	<h:form>
        	   <h:inputText id="name" value="#{helloBean.name}"></h:inputText>
        	   <h:commandButton value="Welcome Me">
        		 <f:ajax execute="name" render="output" />
        	   </h:commandButton>
        		
        	   <div><div class="ads-in-post hide_if_width_less_800">
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <!-- 728x90 - After2ndH4 -->
    <ins class="adsbygoogle hide_if_width_less_800" 
         style="display:inline-block;728px;height:90px"
         data-ad-client="ca-pub-2836379775501347"
         data-ad-slot="3642936086"
    	 data-ad-region="mkyongregion"></ins>
    <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
    </div></div><h2><h:outputText id="output" value="#{helloBean.sayWelcome}" /></h2>	
        	</h:form>
    
        </h:body>
    </html>
    

    In this example, it make the button Ajaxable. When the button is clicked, it will make an Ajax request to the server instead of submitting the whole form.

    <h:commandButton value="Welcome Me">
        <f:ajax execute="name" render="output" />
    </h:commandButton>
    <h:outputText id="output" value="#{helloBean.sayWelcome}" />
    

    In the <f:ajax> tag :

    • execute=”name” – Indicate the form component with an Id of “name” will be sent to the server for processing. For multiple components, just split it with a space in between, e.g execute=”name anotherId anotherxxId”. In this case, it will submit the text box value.
    • render=”output” – After the Ajax request, it will refresh the component with an id of “output“. In this case, after the Ajax request is finished, it will refresh the <h:outputText> component.

    2. ManagedBean

    See the full #{helloBean} example.

    HelloBean.java

    package com.mkyong.common;
    
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    
    import java.io.Serializable;
    
    @ManagedBean
    @SessionScoped
    public class HelloBean 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 getSayWelcome(){
    	   //check if null?
    	   if("".equals(name) || name ==null){
    		return "";
    	   }else{
    		return "Ajax message : Welcome " + name;
    	   }
    	}
    }
    

    3. How it work?

    Access the URL : http://localhost:8080/JavaServerFaces/helloAjax.jsf

    When the button is clicked, it makes an Ajax request and pass the text box value to the server for processing. After that, it refresh the outputText component and display the value via getSayWelcome() method, without any “page flipping effect“.

  • 相关阅读:
    mysql binlog参数设置
    poj 2774 最长公共子--弦hash或后缀数组或后缀自己主动机
    Base64编码和解码算法
    怎样给你的Android 安装文件(APK)减肥
    JAXB 注解
    编程获取linux的CPU使用的内存使用情况
    那么温暖http合约,入门。
    什么是关账?
    经营活动现金净流量与总股本之比和经营活动现金净流量与净资产之比
    P2P风险淮安样本:5000万连锁漩涡牵出银行内案
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4762143.html
Copyright © 2011-2022 走看看