Bu Kategoriye İçerik Girin veya Soru Sorun

Kategori İçi Sözlük

Bu Sayfayı Paylaş:

Primefaces Extention

Tanım: Primefaces kütüphanesine ek bileşenler kazandıran bir kütüphane

Basit Bir DynaForm Örneği

Aşağıda basit bir formun kullanıldığı sayfa görülmektedir:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui"
	xmlns:pe="http://primefaces.org/ui/extensions">
	<h:form id="mainForm">
		<h:panelGroup id="dynaFormGroup">
			<p:messages id="messages" showSummary="true" />
			<p:outputLabel id="messageLabel" value="#{dynaFormTestBean.message}"
				style="white-space: pre;"></p:outputLabel>
			<pe:dynaForm id="dynaForm" value="#{dynaFormTestBean.model}"
				var="data" columnClasses="label-container, field-container">
				<pe:dynaFormControl type="input" for="txt">
					<p:inputText id="txt" value="#{data.value}" />
				</pe:dynaFormControl>
				<f:facet name="buttonBar">
					<p:commandButton value="Submit"
						action="#{dynaFormTestBean.submitForm}" process="dynaForm"
						update=":mainForm:dynaFormGroup"/>
					<p:commandButton type="reset" value="Reset"
						style="margin-left: 5px;" />
				</f:facet>
			</pe:dynaForm>
		</h:panelGroup>
	</h:form>
</ui:composition>
dynaFormBean ise aşağıdaki gibidir :
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import org.omnifaces.cdi.ViewScoped;
import org.primefaces.context.RequestContext;
import org.primefaces.extensions.model.dynaform.DynaFormControl;
import org.primefaces.extensions.model.dynaform.DynaFormLabel;
import org.primefaces.extensions.model.dynaform.DynaFormModel;
import org.primefaces.extensions.model.dynaform.DynaFormRow;
@Named
@ViewScoped
public class DynaFormTestBean implements Serializable {
	private Map<String, Property> map = new HashMap<>();
	private DynaFormModel model;
	private String message = "";
	@PostConstruct
	public void init() {
		map.put("Ad", null);
		map.put("Soyad", null);
		map.put("Yas", null);
		model = new DynaFormModel();
		for (Entry entry : map.entrySet()) {
			DynaFormRow row = model.createRegularRow();
			DynaFormLabel label = row.addLabel(entry.getKey().toString(), 1, 1);
			Property p = new Property(entry.getKey().toString(), null, true);
			DynaFormControl control = row.addControl(p, "input", 1, 1);
			label.setForControl(control);
		}
	}
	public void submitForm() {
		FacesMessage.Severity sev = FacesContext.getCurrentInstance().getMaximumSeverity();
		boolean hasErrors = sev != null && FacesMessage.SEVERITY_ERROR.compareTo(sev) >= 0;
		RequestContext requestContext = RequestContext.getCurrentInstance();
		requestContext.addCallbackParam("isValid", !hasErrors);
		StringBuilder sb = new StringBuilder();
		for (DynaFormControl dynaFormControl : model.getControls()) {
			Property property = (Property) dynaFormControl.getData();
			sb.append(property.getName()).append(":").append(property.getValue()).append("\n");
		}
		setMessage(sb.toString());
	}
	public DynaFormModel getModel() {
		return model;
	}
	public void setModel(DynaFormModel model) {
		this.model = model;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
}

Form submit edildiğinde (submitForm() metodu) DynaFormModel'den gerekli olan değerler alınıp, mesaj değişkeni set edilmektedir. Nesneler önce Map'e koyulmuş sonra model'e verilmiştir.
Property sınıfı ise basit bir get/set olan bir sınıftır.

PrimeFaces Extention Showcase


Primeface Extention bileşenlerinin tanıtıldığı ve örneklerinin verildiği web sitesi
Kaynağa Gitmek İçin Tıklayınız




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir