对于大多数人来说,Hibernate和Spring都不陌生,所以首先讲一下JSF的使用方法哈!
JSF也是一个MVC框架,和Struts2有异曲同工之妙,只是前者偏重view层,后者偏重control层,可以这样说,JSF既做控制又做显示。
使用JSF,配置的步骤如下:
1 、 加入jar包
jsf-impl.jar
jsf-api.jar
commons-digester.jar
commons-collections.jar
commons-beanutils.jar
commons-logging.jar
standard.jar
jstl.jar
2 、 在web.xml中配置支持JSF
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
3 、创建JavaBean, 写Action,处理业务
public String loginAction(){
User user = this.getUserService().login(this.user.getName(), this.user.getPassword());
if(user != null){
return "Login:success";
}else{
return "Login:failure";
}
}
4 、编写faces-config.xml文件,让JSF知道我们设计的Bean以及业务执行流程,放在WEB-INF下边
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<application>
<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
</application>
<managed-bean>
<managed-bean-name>userBean</managed-bean-name>
<managed-bean-class>tbk.web.vo.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>userService</property-name>
<value>#{userService}</value>
</managed-property>
</managed-bean>
<navigation-rule>
<from-view-id>/register.jsp</from-view-id>
<navigation-case>
<from-outcome>Register:success</from-outcome>
<to-view-id>/browse.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>Register:failure</from-outcome>
<to-view-id>/register.jsp</to-view-id>
</navigation-case>
</navigation-rule>
这个文件的标签含义比较简单,就不解释了,就是定义一些执行流程
5 、配置OK以后,编写JSF页面,先new一个jsp页面,在页面头定义
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
然后其余的内容都用jsf的标签就OK了,如果想得到某个控件的值,就用#{},比如#{userBean.user.password},在Bean中调用user.getPassword()就可以得到用户输入的密码。
6 、 最后就是测试,访问URL时,用jsp的faces后缀,比如,编写的jsp页面是login.jsp,则访问的时候要用login.faces,JSF框架会自动找到对应的JSP页面。
OK了,以上就是JSF的开发流程,相信已经没问题了,下面就是和Hibernate、Spring集成,其实很简单,就是在中间加一点点东西。
1 、在web.xml文件中添加Spring支持
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
然后添加Hibernate支持,这个你会的。
2 、 创建实体、Dao接口、接口实现、service等一系列的操作,和SSH开发很像的哈,这些工作都做好以后,将前边编写的Bean类加进来,访问数据库,根据执行结果返回值,框架再根据faces-config.xml文件查找到该返回值应该到达的地方,然后结果就顺理成章的出现了。
集成这方面写的比较少,主要是觉得和SSH太像了,呵呵