User talk:Akysoft/JSF
Contents |
[edit] JSF
[edit] JSF oldalak életciklusa
Saját validátor használata jsp oldalon:
<h:selectOneMenu validator="#{statisticsValidatorBean.validate}">
java kódban:
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
if (value is not valid){
throw new ValidatorException(new FacesMessage("hibauzenet"));
}
}
A validációs metódusba már a konvertált érték kerül bele, ha volt ilyen definiálva. Az a UIComponent, amelyik a validációs folyamaton túl van, a submittedValue értéke átkerül a value-ba és a submittedValue értéke null lesz
TODO: Ki kell próbálni az alábbi dolgot: Hiba jelenség: egy form elküldésekor nem történik semmi. Csak a második kattintás után hajtódik végre.
Hiba oka: A validációs fázisból visszamegy az oldalra.
Megoldás: valamilyen validációt kell tenni az űrlapra.
[edit] Sun Web UI komponens gyűjtemény
[edit] Calendar komponens
A calendar komponens csak akkor működik, ha <ui:page> és <ui:head> tag-ek is szerepelenek az oldalon. Pl.:
<%@ page contentType="text/html;charset=utf-8"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://www.sun.com/web/ui" prefix="ui"%> <f:view> <ui:page> <ui:html> <ui:head/> <ui:body> <ui:form id="test"> <ui:calendar dateFormatPattern="yyyy.MM.dd" dateFormatPatternHelp="éééé.hh.nn" style="background-color: #00ffff"/> <h:commandButton id="backBtn" value="Vissza" action="actionBack" /> </ui:form> </ui:body> </ui:html> </ui:page> </f:view>
Tartalmaz egy bug-ot, mivel nem lehet a input mező stílusát állítani style paraméterrel. Ez kikerülhető ha a com.sun.rave.web.ui.renderer.CalendarRenderer osztályban átírjuk a
renderInput(calendar, "text", clientId.concat("_field"), false, styles, context, writer);
sor helyett
renderInput(calendar, "text", clientId.concat("_field"), true, styles, context, writer);
Továbbá a renderTableStart metódusban a
writer.writeAttribute("style", style, "style");
sort ki kell kommentezni.