在同事的介绍下,开始接触JBoss Seam ,在学习他之前,是需要补充一下JSF的知识,我没有从事过JSF的开发.主要是阅读Beginning Jboss Seam<beginning seam="" jboss=""></beginning>的一些读后感.
Jsf 支持tomahawk-1.1.3.jar 提供的一些控件 如日历,日期.
一个简单的例子:
jsf 页面
- <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
- <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
- <f:view>
- <h:outputText value="#{helloWorld.outputText}"/>
- f:view>
java 代码
- Listing 3-2. The Backing Bean for the Hello World Example
- package com.integrallis.jsf;
- public class HelloWorld {
- private String outputText = "Hello World";
- public String getOutputText() {
- return outputText;
- }
- }
xml 代码
- Listing 3-3. The faces-config.xml File with the HelloWorld Bean Defined
- xml version="1.0"?>
- <faces-config>
- <navigation-rule>
- <from-view-id>/input.jspfrom-view-id>
- <navigation-case>
- <from-outcome>greetingfrom-outcome>
- <to-view-id>greeting.jspto-view-id>
- navigation-case>
- navigation-rule>
- <managed-bean>
- <managed-bean-name>helloWorldmanaged-bean-name>
- <managed-bean-class>com.integrallis.jsf.HelloWorldmanaged-bean-class>
- <managed-bean-scope>requestmanaged-bean-scope>
- managed-bean>
- faces-config>
- Listing 3-4. The web.xml File for Our Example
- xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <listener>
- <listener-class>
- org.apache.myfaces.webapp.StartupServletContextListener
- listener-class>
- listener>
- <context-param>
- <param-name>javax.faces.STATE_SAVING_METHODparam-name>
- <param-value>clientparam-value>
- context-param>
- <servlet>
- <servlet-name>Faces Servletservlet-name>
- <servlet-class>javax.faces.webapp.FacesServletservlet-class>
- <load-on-startup>1load-on-startup>
- servlet>
- <servlet-mapping>
- <servlet-name>Faces Servletservlet-name>
- <url-pattern>*.facesurl-pattern>
- servlet-mapping>
- web-app>
其实还是应该有个 components.xml .在这个例子中没用上,在以后的学习中会接触到.
JSF验证:
xml 代码
- Listing 3-7. An Example of a JSF Validation
- <h:inputText id="inputExample" value="#{example.value}">
- <f:validateLongRange minimum="1" maximum="500"/>
- </h:inputText>
在Seam 中,有更好的办法做验证,但是这种方式也是被支持的.
Backing Beans:responsible for the business logic of a JSF application.
不同于其他的JavaBean ,他除了有属性的Set()/Get()方法之外,他还有事件监听方法.但在Seam 中 他将会被Seam标签取代,这样看上去就更像EJB.