Zdravím všechny přítomné.
Mám trochu problém s JSF (impl. com.sun.*) a s používáním knihovny jstl.
Tomu, že se vyhodnocují např. atributy rendered
<h:panelGrid rendered="#{inputBean.value!=null}">
z knihovny xmlns:h="http://java.sun.com/jsf/html"
a podmínka <c:if test="#{inputBean.value!=null}"> xmlns:c="http://java.sun.
com/jsp/jstl/core" v jiné fázi jsem se přizpůsobil,
ale narazil jsem na problém s partial renderingem u ajaxu.
Níže uvedený kód funguje tak, jak potřebuji - při ajax submitu se pracuje
jen s managed beanou "ajaxBean",
ale pokud podmínku
<h:panelGrid rendered="#{inputBean.value!=null}">
nahradím podmínkou
<c:if test="#{inputBean.value!=null}">
, začne se při ajax submitu vytvářet a vyhodnocovat i managed beana
"inputBean" - což při jiném způsobu vyhodnocování u knihovny jstl chápu, ale
což nechci a co může za jiných okolností způsobovat chybu.
Můj dotaz je následující.
1.Používáte někdo např. knihovnu s obdobnou funkcionalitou jako jstl, která
by ale vyhodnocování prováděla v jiné fázi ( tak jako vyhodnocení
např. h:panelGrid rendered="#{inputBean.value!=null}")?
případně
2. Používáte jiný způsob, jak podmíněně renderovat bloky bez použití
komponent, které by cokoliv(div,span) renderovaly (tj. bez h:panelGrid apod.
a bez f:subview), dále náhradu jstl elementu c:set <c:set target="#
{formBean}" property="onEdit" value="#{true}" /> - pokud možno bez vytváření
vlastních custom composite component, které by řešily jen tohle (tj.,
nějakým "jednoduchým a běžným způsobem")?
Předem děkuji za odpovědi!
M.Paulfranc
/**********************************************/
<!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:ui="http://java.sun.com/
jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/
core" xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<f:view>
<h:head>
<title>JSF-TEST</title>
</h:head>
<h:body>
<h:form>
<!-- AJAX -->
<h:inputText value="#{ajaxBean.value}" id="idAjaxInput" />
<h:commandButton value="Submit">
<f:ajax event="click" render="idAjaxOutput" execute=
"idAjaxInput" />
</h:commandButton>
<h:outputText value="#{ajaxBean.value}" id="idAjaxOutput" />
<!-- SUBMIT -->
<h:panelGrid rendered="#{inputBean.value!=null}">
<h:outputText value="#{inputBean.value}" />
<h:inputText value="#{inputBean.value}" />
<h:commandButton action="#{inputBean.submit}" value="Send" /
>
</h:panelGrid>
</h:form>
</h:body>
</f:view>
</html>