Documente Academic
Documente Profesional
Documente Cultură
JavaServer Faces
Device renderer
Markup
JSF Page
<f:view> UI component
…
<h:inputText Expr. language
required="true"
value="#{emp.name}" Managed bean
/>
…
</f:view> J2EE persistence layer/JDBC
RDBMS
EL connects UI components:
• To model properties for data:
<h:inputText id="lastName“
required="true"
value="#{customer.lastName}"/>
contains
verifies Event listener
Converter value manipulates
executes
generates updates selects
generates specialized
Backing bean
Message Action method Navigation
generates outcome
ValueExpression valueExpression =
exprfactory.createValueExpression(elctx,"#{mybean}",Object.class);
MyBean myBean = (MyBean) valueExpression.getValue(elctx);
<managed-bean>
<managed-bean-name>userbean</managed-bean-name>
<managed-bean-class>com.oracle.sample.User</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>userType</property-name>
<value>#{reference['USER_TYPES'].['EMPLOYEE']}</value>
</managed-property>
</managed-bean>
ValueExpression valueExpression =
exprfactory.createValueExpression(elctx,"#{userbean}",Object.class);
User user = (User) valueExpression.getValue(elctx);
• It is evaluated immediately.
• It can only be used within template text or as the value of a
JSP tag attribute.
<fmt:formatNumber value="${sessionScope.cart.total}"/>
• Definition:
<managed-bean>
<managed-bean-name>userbean</managed-bean-name>
<managed-bean-class>com.oracle.sample.User</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
• Usage on a page:
<h:inputText value="#{userbean.name}"/>
ValueExpression valueExpression =
exprfactory.createValueExpression(elctx,"#{userbean}",Object.class);
User user = (User) valueExpression.getValue(elctx);
<managed-bean>
<managed-bean-name>person</managed-bean-name>
<managed-bean-class>demo.PersonBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-bean>
<managed-bean>
<managed-bean-name>bank</managed-bean-name>
<managed-bean-class>demo.BankBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-bean>
ValueExpression valueExpression =
exprfactory.createValueExpression(elctx,"#{bank}",Object.class);
BankBean bank = (BankBean) valueExpression.getValue(elctx);
<managed-bean>
<managed-bean-name>Person</managed-bean-name>
<managed-bean-class>demo.PersonBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>bank</property-name>
<property-class>demo.BankBean</property-class>
<value>#{bank}</value>
</managed-property>
<managed-bean>
<managed-bean>
<managed-bean-name>bank</managed-bean-name>
<managed-bean-class>demo.BankBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-bean>
Managed properties:
• Are managed bean variables that are exposed through
getter and setter methods
• Are configured in faces-config.xml
• Can take the following possible values:
– Null
– Literal string
– Lists and maps
– Value-binding Expression Language (EL)
• Literal string:
<managed-bean>
…
<managed-property>
<property-name>label</property-name>
<value>Hello World</value>
</managed-property>
…
AttributeBinding deptBinding =
(AttributeBinding)getBindings().getControlBinding("DepartmentName");
String departmentName = (String)deptBinding.getInputValue();
OperationBinding operationBinding =
getBindings().getOperationBinding("findDepartmentManagerId");
Map params = operationBinding.getParamsMap();
params.put("searchTerm","Sales");
Number deptManager = operationBinding.execute();
FacesContext:
• Is a static class that provides access to information such as
application messages, render kits, ViewRoots,
ExternalContext, and so on
• Represents the current request that is processed
ExternalContext:
• Provides access to the world outside JSF
ADFFacesContext:
• Is a context object to support ADF Faces–specific functionality:
– Partial page rendering (PPR)
– Skinning
– Oracle Help
– Dialog framework support