JSF 2.0: Custom Component

November 21st, 2010 by Paulus Ganesha Aryo Prakoso

Saat ini sedang bermain dengan teknologi Java yaitu JSF 2.0. Mudah mengerjakan form dengan cepat karena ada beberapa component yang sudah ada. Kalau Anda masih pemula, bisa belajar JSF 2.0 hello world example.

Component yang untuk menampilkan teks.

<h:outputText value="Hai Paulus." />

Kalau ingin membuat custom component seperti di bawah:

<cu:custom say="Hai Paulus." />

Iya bisa membuat component yang diinginkan kita.

1. Load custom-taglib.xml di web.xml

<context-param>
	<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
	<param-value>/WEB-INF/taglib/custom-taglib.xml</param-value>
</context-param>

2. Membuat tag component di /WEB-INF/taglib/custom-taglib.xml

<?xml version="1.0" encoding="UTF-8"?>
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
	version="2.0">
	<namespace>http://paganekoso.net/jsf/custom-taglib</namespace>
	<tag>
		<tag-name>custom</tag-name>
		<component>
			<component-type>mycustom</component-type>
		</component>
		<attribute>
			<description>Put your message</description>
			<name>say</name>
			<required>false</required>
			<type>java.lang.String</type>
		</attribute>
	</tag>
</facelet-taglib>

3. Membuat class MyCustomComponent.java

@FacesComponent("mycustom")
public class MyCustomComponent extends UIComponentBase {
 
	@Override
	public void encodeAll(FacesContext context) throws IOException {
		ResponseWriter writer = context.getResponseWriter();
 
		String say = (String) getAttributes().get("say");
 
		writer.startElement("h3", this);
 
		if (say != null) {
			writer.writeText(say, "say");
		} else {
			writer.writeText("Hello from a custom JSF UI Component", null);
		}
 
		writer.endElement("h3");
	}
 
	@Override
	public String getFamily() {
		return "custom";
	}
 
}

4. Gunakan custom component telah dibuat.

<html xmlns="http://www.w3.org/1999/xhtml"
	....
	xmlns:cu="http://paganekoso.net/jsf/custom-taglib">
<cu:custom say="Selamat datang, Paulus"/>

Mudah khan? Kita bisa membuat custom component yang sesukanya. :)

DeliciousDiggFacebookNetlogMultiplyTechnorati FavoritesTwitterTypePad PostYahoo BookmarksShare

Baca lain juga:

Posted in Open Source, Programming

Paulus Ganesha Aryo Prakoso

Tentang Penulis:

Paulus Ganesha Aryo Prakoso sering dipanggil akrab Paul atau Gagah. Dia adalah seorang penyandang cacat tunarungu (tidak bisa mendengar) tetapi bisa bicara. Dia seorang Java Developer yang bekerja di sebuah perusahaan IT & Telecom, Ensemble Consulting, Citylofts. Telah berpengalaman dalam teknologi Java yaitu Spring Framework, JSF 2.0, Hibernate dan sebagainya. Selain itu, dia juga menulis blog ini. Lihat profile »

2 Responses

  1. DWuysan Says:

    JSF 2.0 jauh lebih mudah and FUN dibandingkan dengan JSF 1.2. Untuk fancy UI, coba extension http://www.primefaces.org/

  2. Paulus Ganesha Aryo Prakoso Says:

    Iya betul saat ini sering gunakan primefaces … ;)

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.