2014-04-07 19 views
5

Hi mam „fieldset” tag w moją stronę JSFJSF warunkowy atrybut na HTML5 tag

teraz muszę warunkowego dodać „wyłączone” atrybut

mam rozwiązanie, ale jest bardzo brzydki :

<h:outputText escape="false" value="&lt;fieldset disabled='disabled'&gt;" rendered="#{surveysHandler.surveyRunning}" /> 
<h:outputText escape="false" value="&lt;/fieldset&gt;" rendered="#{surveysHandler.surveyRunning}" /> 

Czy istnieje fajna metoda jsf 2.2?

Odpowiedz

3

Tak, istnieje całkiem nowy sposób JSF 2.2, aby to osiągnąć!

Można dokonać fieldset do JSF 2.2 połączenia Przez element i przekazać mu mapę atrybutów tak:

<fieldset jsf:id="fieldset"> 
    <f:passThroughAttributes value="#{customerBean.params}"/> 
</fieldset> 

Przedrostek jsf jest dla nowego JSF 2.2 nazw http://xmlns.jcp.org/jsf. Jeśli znacznik HTML ma dowolny atrybut w tej przestrzeni nazw, JSF przekształci go w prawdziwy komponent JSF w drzewie komponentów. Dlatego możliwe jest użycie f:passThroughAttributes, aby dodać atrybuty pochodzące z mapy w zarządzanym komponencie bean.

getter dla właściwości params może wyglądać następująco (można dodać atrybutów na podstawie jakiegokolwiek warunku w fasoli):

public Map<String, String> getParams() { 
    HashMap<String, String> params = new HashMap<String, String>(); 
    if (disabled) { 
     params.put("disabled", "disabled"); 
    } 
    return params; 
} 

W celu uzyskania dalszych informacji na temat tranzytem cech i elementów, spojrzeć na mojego blogpost około HTML5 friendly markup with JSF 2.2.

Powiązane problemy