Jsf PrimeFaces Java taneciğinden, sınıfından javascript çalıştırma kodu kullanımı örneği (Jsf PrimeFaces execute javascript from beans code usage example)

JSF Java sınıfından ön yüzde çalıştırılmasını istediğiniz JavaScript çağırma kodunu aşağıdaki gibi çalıştırabilirsiniz. Burada Java sınıfından ön yüzde yükleniyor ifadesinin görüntülenmesi ve gösteriminin durdurulmasını yapabilir veya ekrana alarm bilgisi basabilirsiniz veya ekranda PrimeFaces mesajı gösterebilirsiniz ya da aklınıza gelen fakrlı JavaScript komutlarını tetikleyebilirsiniz.

<!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:p="http://primefaces.org/ui">

<h:head></h:head> 
<h:body> 
index page

	<p:dialog widgetVar="statusDialog" modal="true" draggable="false" closable="false" resizable="false" showHeader="false">
	    <img src="img/loading.gif"></img>
	</p:dialog>
	
	#{viewBean.str01}
	
	
	<h:form>   
	 	 <p:growl id="growl" />

	 	 <p:remoteCommand name="myOnload"
	    		actionListener="#{viewBean.getList()}"
			    update=""
		    	autoRun="true"/>
	 	 <p:commandButton type="button" onclick="myOnload()" value="Execute" icon="ui-icon-refresh" />
	</h:form>


</h:body> 
</html>

package net.yazilimcity.application.front.ui;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import org.primefaces.context.RequestContext;

/**
 * 
 * @author oguzhankinik 
 */

@ManagedBean(name = "viewBean")
@ViewScoped
public class ViewBean {

	private String str01 = "str0101";

	@PostConstruct
	public void init() {
		try {
			if (!FacesContext.getCurrentInstance().isPostback()) {
				RequestContext.getCurrentInstance().execute("PF('statusDialog').show()");
				// RequestContext.getCurrentInstance().execute("PF('statusDialog').hide()");
				
	            RequestContext.getCurrentInstance().execute("alert('Hello from Java Bean.')");
	            
	            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Success", "Success"));
			}
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}

	public String getStr01() {
		return str01;
	}

	public void setStr01(String str01) {
		this.str01 = str01;
	}

	@Override
	public String toString() {
		return "ViewBean [str01=" + str01 + "]";
	}

}

Bir başka örnek ise mesela sayfanız yüklenirken “Yükleniyor” resmini göstermeniz ve sayfa yüklendikten sonra işleme başlamanız ve bu işlem sırasında “Yükleniyor” ifadeniz ekranda kalacaktır ve Java kısmında işlemleriniz tamamlandıktan sonra ise “Yükleniyor” ifadesini kapatabilirsiniz.

Burada HTML sayfamız yüklendiğinde “Yükleniyor” resmi ekranda görüntüleniyor ve sonrasında PrimeFaces p:remoteCommand etiketi ile sayfa yüklendiğinde Java metodu çağrılıyor ve Java metodu işini bitirdikten sonra ise HTML sayfamızdaki “Yükleniyor” resmini görünmez yapıyor.

<!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:p="http://primefaces.org/ui">

<h:head></h:head> 
<h:body> 

index page

	<img id="loadingImg" style="display: block"
			src="img/loading.gif"></img>

	#{viewBean.str01}
		
	<h:form>   
    	
	    	<p:remoteCommand name="myOnload"
	    		actionListener="#{viewBean.getList()}"
			update=""
		    	autoRun="true"/>
	</h:form>
</h:body> 
</html>

package net.yazilimcity.application.front.ui;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.primefaces.context.RequestContext;

/**
 * 
 * @author oguzhankinik 
 */

@ManagedBean(name = "viewBean")
@ViewScoped
public class ViewBean {

	private String str01 = "str0101";

	@PostConstruct
	public void init() {

	}
	
	

	public ViewBean() {

	}

	public void getList() {
		try {
				int intVal = 123456;
				for(int i=0; i<intVal; i++) {
					System.out.println(i);
					if(i == intVal-1) {
						RequestContext.getCurrentInstance().execute("document.getElementById(\"loadingImg\").style.display=\"none\"");						
					}
				}
	           
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}


	public String getStr01() {
		return str01;
	}

	public void setStr01(String str01) {
		this.str01 = str01;
	}

	@Override
	public String toString() {
		return "ViewBean [str01=" + str01 + "]";
	}

}

Share on Facebook0Tweet about this on TwitterShare on Google+0Share on StumbleUpon0Share on Reddit0

Leave a Reply


*