`
bigkai_13
  • 浏览: 13428 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

jsf+spring实现完全依托spring的注入方式

阅读更多

完全脱离managed-beans 管理bean.让spring管理bean的依赖。

其实JSF也是采用set方式提供对bean的依赖注入,但是并不完全和spring相同。因为Spring可以给我们提供更简单的注入方式,并且也提供了更多的功能,如安全验证和事物管理等等。

下面演示一下怎么实现让Spring完全的管理Bean

定义一个pojo Person.java

package pojo;

public class Person {
private String name;
private int age;
private IAction action;

public IAction getAction() {
   return action;
}

public void setAction(IAction action) {
   this.action = action;
}

public String getName() {
   return name;
}

public void setName(String name) {
   this.name = name;
}

public int getAge() {
   return age;
}

public void setAge(int age) {
   this.age = age;
}
public void isExecute(){
   action.doSomething();
   System.out.println("哈哈"+this.getName());
}

}

action接口 IAction.java

public interface IAction {
    public void doSomething();
}

action接口实现类 ActionImpl

package pojo;

public class ActionImpl implements IAction {

@Override
public void doSomething() {
System.out.println("正在打架");
}

}
到此Java的业务逻辑部分完成,下面是配置文件。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
   <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<servlet>
   <servlet-name>Faces Servlet</servlet-name>
   <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
   <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
   <servlet-name>Faces Servlet</servlet-name>
   <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

注意:两个监听类都需要引入spring.web包

faces.xml

<?xml version='1.0' encoding='UTF-8'?>

<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version="1.2">

<application>
   <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
</application>
</faces-config>

很简单就一句话

Spring的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="action" class="pojo.ActionImpl"></bean>
    <bean id="bean" class="pojo.Person" scope="request"> bean的存在范围
     <property name="action" ref="action"></property>
    </bean>

</beans>

最后页面 index.faces

<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSF 'index.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<f:view>
   <h:form>
     <h:outputLabel>your name?</h:outputLabel>
     <h:inputText value="#{bean.name}"></h:inputText></p>
      <h:outputLabel>your age?</h:outputLabel>
     <h:inputText value="#{bean.age}"></h:inputText>
     <h:commandButton value="reg it" action="#{bean.isExecute}"></h:commandButton>
   </h:form>
</f:view>
</body>
</html>

试试看。证明一下强大的spring.

分享到:
评论

相关推荐

    JSF+Spring+Ibatis示例

    JSF+Spring+Ibatis示例,对学习JAVA企业应用开发有巨大的帮助!

    jsf+spring+hibernate

    【JSF+Spring+Hibernate整合开发】 JSF (JavaServer Faces)、Spring 和 Hibernate 是 Java 开发中的三大核心技术,常用于构建企业级的 Web 应用程序。它们各自扮演着不同的角色,共同构建了一个强大的后端架构。 1...

    JSF+Spring+Hibernate小例子

    **JSF+Spring+Hibernate整合应用详解** 在Java Web开发中,JSF(JavaServer Faces)、Spring和Hibernate是三个常用的技术栈,它们分别负责视图层、业务逻辑层和服务数据持久化层。这个"JSF+Spring+Hibernate小例子...

    jsf+spring2.5+jpa(hibernate)的jar包

    这是jsf+spring2.5+jpa(hibernate)的jar包,很多人为了jsj环境而配置半天,在此提供jar包共享。注:除了ajax4jsf和tomahawk-1.1.3.jar,因为csdn只让我上传20mb,大家自己可以下一下自己试试。

    JSF+Spring+Hibernate(框架整合)详细过程

    以下是对"JSF+Spring+Hibernate"整合的详细过程的阐述: 1. **JavaServer Faces (JSF)**:JSF是一种基于组件的MVC(模型-视图-控制器)框架,主要用于构建企业级的Web应用程序。它提供了一套预定义的UI组件,使得...

    JSF+Spring+Hibernate jar lib

    JSF+Spring+Hibernate jar文件压缩包,hibernate最小配置,Spring 2.0 jar, richfaces

    jsf+spring 实例

    JSF和Spring的整合主要是通过Spring Web Flow(SWF)或者SpringFaces模块来实现。SWF为JSF提供了更强大的流程控制能力,而SpringFaces则是Spring社区为了更好地集成JSF而创建的项目。 **4. 整合步骤** - 配置Spring...

    JSF+Spring+JPA(Hibernate实现)的环境搭建

    ### JSF+Spring+JPA(Hibernate实现)的环境搭建详解 #### 一、概述 在当前企业级应用开发中,技术栈的选择至关重要。本文旨在详细介绍如何构建基于JSF(JavaServer Faces)、Spring以及JPA(Java Persistence API,...

    JSF+Spring+Hibernate的实例讲解.doc

    2. **集成 Spring**:通过在 JSF 的 Managed Beans 中注入 Spring 的 Bean,可以利用 Spring 的依赖注入特性。这需要配置 Spring 的上下文文件,声明 Bean 及其依赖,并启用 JSF-Spring 桥接器。 3. **整合 ...

    jsf+hibernate+spring集成案例

    在这个"jsf+hibernate+spring集成案例"中,我们将看到: 1. **配置集成**:首先,我们需要在Spring配置文件中定义数据源、SessionFactory(Hibernate的核心组件)以及JSF所需的Managed Beans。这通常涉及到XML配置...

    ajax+jsf+spring+hibernate

    **Ajax、JSF、Spring和Hibernate是四种在Java Web开发中广泛应用的技术,它们共同构建了高效、灵活且功能强大的Web应用程序。** **Ajax(Asynchronous JavaScript and XML)** 是一种在无需重新加载整个网页的情况...

    JSF+Spring+Hibernate 分页显示

    总的来说,JSF+Spring+Hibernate的组合提供了强大的功能,用于构建高效的分页显示系统。在实际应用中,我们需要根据项目规模和性能需求,灵活运用这些技术和策略,以实现最优的用户体验和系统性能。

    jsf+spring+hibernate架构的网上商店

    **JSF+Spring+Hibernate 架构的网上商店** 在当今的互联网开发中,JavaScript 面向服务器框架(JSF)、Spring 框架和 Hibernate ORM 工具的组合被广泛用于构建复杂的Web应用程序,尤其是电子商务平台。这种架构模式...

    jsf+spring+hibernate实例

    在"jsf+spring+hibernate"整合中,Hibernate负责数据的持久化,通过映射Java实体类到数据库表,实现了数据的CRUD(创建、读取、更新、删除)操作。Spring与Hibernate的集成通常通过Spring的HibernateTemplate或...

    jsf+spring+servlet的demo

    "jsf+spring+servlet的demo"是一个结合这三个技术的示例项目,旨在展示如何将它们协同工作来创建一个完整的Web应用。 首先,JSF作为前端框架,主要负责生成和处理用户界面。它通过UI组件库(如PrimeFaces或MyFaces...

    基于jsf+spring+hibernate+ajax的网络文件管理系统

    本系统是基于jsf+spring+hibernate+ajax实现的一个网络文件管理系统.运行环境 WEB服务:TOMCAT6 数据库:SQLSERVER2005 JDK1.4以上 本系统采用了基于角色的权限管理

    JSF+Spring+Hibernate相关技术文档

    快速建立一个基于_jsf+spring+hibernate工程.doc和jsf+spring+hibernate整合笔记.docx可能详细讲述了如何从零开始构建这样的工程,包括环境配置、依赖注入、实体定义、数据访问对象(DAO)的创建以及控制器的设置等...

    jsf1.2+Spring3.0.5+Mybatis

    在Spring框架中集成Mybatis,可以借助Spring的事务管理能力,实现高效且一致的数据操作。 这三个框架的集成,通常会通过Spring的Context配置文件来完成,配置JSF的Managed Beans、Spring的Bean以及Mybatis的...

    jsf+spring 的 配置文件

    在"jsf+spring"的配置文件中,主要涉及以下几个方面: 1. **集成配置**:首先,我们需要在Spring的配置文件(如`applicationContext.xml`)中声明JSF的Managed Bean作为Spring的Bean,这样可以利用Spring的依赖注入...

Global site tag (gtag.js) - Google Analytics