JSF(JavaServer Faces)是一种基于Java的Web应用程序框架,它可以帮助开发人员快速开发功能丰富的Web应用程序。它使用XML文件来定义用户界面元素,并使用JavaBeans来处理数据。JSF提供了一个标准的MVC(Model-View-Controller)架构,可以帮助开发人员快速开发功能丰富的Web应用程序。
Spring是一个轻量级的Java/J2EE应用程序框架,它使开发人员能够创建健壮、易于测试、易于部署的企业应用程序。Spring使用IoC容器来解耦对象之间的依赖关系,并提供了AOP、数据访问、事务处理、远程调用、Web服务和其他各种服务。Spring还支持多个Web MVC框架,包括Struts、JSF和Tapestry。
public class MyBean { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
下面的代码显示了如何使用Spring来使用JSF。
以下代码来自PrinterImpl.java。
package cn..common; import javax.inject.Named; @Named public class PrinterImpl implements Printer{ public String print() { return "JSF 2 + Spring Integration"; } }
下面的代码来自Printer.java。
package cn..common; public interface Printer{ public String print(); }
以下代码来自default.xhtml。
<?xml version="1.0" encoding="UTF-8"?> <!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:h="http://java.sun.com/jsf/html"> <h:body>#{userBean.printMsgFromSpring()}</h:body> </html>
下面的代码来自UserBean.java。
package cn..common; import javax.inject.Inject; import javax.inject.Named; import org.springframework.context.annotation.Scope; @Named @Scope("session") public class UserBean { @Inject Printer printer; public void setPrinter(Printer p) { this.printer = p; } public String printMsgFromSpring() { return printer.print(); } }下载 JSF_Spring.zip
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com..jsf</groupId> <version>1.0-SNAPSHOT</version> <artifactId>simple-webapp</artifactId> <packaging>war</packaging> <name>Simple Web Application</name> <dependencies> <!-- Spring framework --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.1.2.RELEASE</version> </dependency> <!-- JSF --> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.1.13</version> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.1.13</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> </dependency> <!-- EL --> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>el-impl</artifactId> <version>2.2</version> </dependency> <!-- Tomcat 6 need this --> <dependency> <groupId>com.sun.el</groupId> <artifactId>el-ri</artifactId> <version>1.0</version> </dependency> <!-- JSR-330 --> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> </dependencies> <build> <finalName>simple-webapp</finalName> </build> </project>
以下代码来自applicationContext.xml。
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <context:component-scan base-package="com." /> </beans>
将生成的WAR文件从目标文件夹复制到Tomcat部署文件夹,并运行Tomcat-Install-folder/bin/startup.bat。
Tomcat完成启动后,在浏览器地址栏中键入以下URL。
http://localhost:8080/simple-webapp/default.xhtml
JSF教程 -JSF复合组件示例JSF可以定义自定义组件来渲染自定义内容。为了创建一个自定义组件,我们需要创建一个资源文件夹。并将...
JSF教程 -JSF页面重定向示例JSF默认在从一个页面导航到另一个页面时执行服务器页面,并且应用程序的URL不会更改。要启用页面重定...