Java Server Faces: Porovnání verzí

Z FI WIKI
Přejít na: navigace, hledání
Řádka 13: Řádka 13:
 
a aplikace tak nebudou fungovat v prohlížečích, které mají JavaScript vypnutý.
 
a aplikace tak nebudou fungovat v prohlížečích, které mají JavaScript vypnutý.
  
Ve verzi JavaEE 5.0 byl sjednocen JSTL EL a JSF EL do jednoho jazyka.
+
Implementace JSF má předpřipravené komponenty pro běžné prvky - hyperlinky, tlačítka,
 +
editovatelná pole, výběry se seznamů, zobrazení seznamu chyb atd.
 +
 
 +
Celá JSF aplikace se konfiguruje pomocí souboru <code>/WEB-INF/faces-config.xml</code>.
 +
 
 +
Stav komponent a stránek se pamatuje pomocí tzv. managed JavaBeans, které se musí
 +
popsat v konfiguračním souboru. K jejich properties se pak dá přistupovat pomocí výrazů jazyka EL.
 +
 
 +
<xml>
 +
//faces-config.xml
 +
<managed-bean>
 +
    <description>
 +
      The backing bean that backs up the guessNumber Web application
 +
    </description>
 +
    <managed-bean-name>UserNumberBean</managed-bean-name>
 +
    <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class>
 +
    <managed-bean-scope>session</managed-bean-scope>
 +
    <managed-property>
 +
      <property-name>minimum</property-name>
 +
      <property-class>long</property-class>
 +
      <value>0</value>
 +
    </managed-property>
 +
    <managed-property>
 +
      <property-name>maximum</property-name>
 +
      <property-class>long</property-class>
 +
      <value>10</value>
 +
    </managed-property>
 +
  </managed-bean>
 +
</xml>
 +
Ve verzi JavaEE 5.0 byl sjednocen JSTL EL a JSF EL do jednoho Unified EL jazyka:
 
* výrazy <code>${neco}</code> označují výrazy pro čtení vyhodnocované při zobrazení JSP stránky
 
* výrazy <code>${neco}</code> označují výrazy pro čtení vyhodnocované při zobrazení JSP stránky
 
* výrazy <code>#{neco}</code> označují výrazy pro čtení i zápis
 
* výrazy <code>#{neco}</code> označují výrazy pro čtení i zápis
 +
 +
K vše uvedenému managed JavaBeanu můžete tedy přistupovat např. pomocí
 +
<xml>
 +
<%@ 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" %>
 +
<body bgcolor="white">
 +
    <f:view>
 +
            <h:form id="mujForm" >
 +
                max: <h:outputText value="#{UserNumberBean.maximum}"/> <br>
 +
                min: <h:outputText value="#{UserNumberBean.minimum}"/> <br>
 +
                Novy max: <h:inputText id="newMax" value="#{UserNumberBean.maximum}" > </h:inputText><br>
 +
                Novy min: <h:inputText id="newMin" value="#{UserNumberBean.minimum}" > </h:inputText><br>
 +
                <h:commandButton id="submit" action="success" value="Submit" />
 +
            </h:form>
 +
        </f:view>
 +
</body>
 +
</xml>

Verze z 16. 10. 2006, 16:53

Java Server Faces je rámec postavený přímo na Servlet API. Může používat JSP, ale nemusí. Pokud používá JSP, jsou k dispozici dvě knihovny JSP značek.

Stránky jsou skládány z komponent. Jedna komponenta může mít více různých rendererů, např. pro HTML, pro XHTML, pro WAP/WML, nebo i různé varianty v rámci HTML. Standardně je k dispozici základní sada komponent a renderery do HTML.

Např. komponenta UICommand se může zobrazit

  • jako hyperlink pomocí značky <h:commandLink>
  • jako tlačítko pomocí značky <h:commandButton>

Nevýhodou implementací JSF je, že renderery pro HTML si často vypomáhají JavaScriptem, a aplikace tak nebudou fungovat v prohlížečích, které mají JavaScript vypnutý.

Implementace JSF má předpřipravené komponenty pro běžné prvky - hyperlinky, tlačítka, editovatelná pole, výběry se seznamů, zobrazení seznamu chyb atd.

Celá JSF aplikace se konfiguruje pomocí souboru /WEB-INF/faces-config.xml.

Stav komponent a stránek se pamatuje pomocí tzv. managed JavaBeans, které se musí popsat v konfiguračním souboru. K jejich properties se pak dá přistupovat pomocí výrazů jazyka EL.

 
 //faces-config.xml
 <managed-bean>
    <description>
      The backing bean that backs up the guessNumber Web application
    </description>
    <managed-bean-name>UserNumberBean</managed-bean-name>
    <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>minimum</property-name>
      <property-class>long</property-class>
      <value>0</value>
    </managed-property>
    <managed-property>
      <property-name>maximum</property-name>
      <property-class>long</property-class>
      <value>10</value>
    </managed-property>
  </managed-bean>

Ve verzi JavaEE 5.0 byl sjednocen JSTL EL a JSF EL do jednoho Unified EL jazyka:

  • výrazy ${neco} označují výrazy pro čtení vyhodnocované při zobrazení JSP stránky
  • výrazy #{neco} označují výrazy pro čtení i zápis

K vše uvedenému managed JavaBeanu můžete tedy přistupovat např. pomocí

 
 <%@ 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" %>
 <body bgcolor="white">
    <f:view>
            <h:form id="mujForm" >
                max: <h:outputText value="#{UserNumberBean.maximum}"/> <br>
                min: <h:outputText value="#{UserNumberBean.minimum}"/> <br>
                Novy max: <h:inputText id="newMax" value="#{UserNumberBean.maximum}" > </h:inputText><br>
                Novy min: <h:inputText id="newMin" value="#{UserNumberBean.minimum}" > </h:inputText><br>
                <h:commandButton id="submit" action="success" value="Submit" />
            </h:form>
        </f:view>
 </body>