`
nivcheral
  • 浏览: 70762 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用Flex+Spring+Hibernate写一个登录

阅读更多

1下载支持文件flex-spring.zip

新建FlexLCDS工程File -> new -> Flex Project 这里不细说这个。请看http://nic.iteye.com/blog/247604

前端是flex.中间层使用spring接着hibernatespring+hibernate的集成方法和j2ee的项目中方法相同

修改WEB-INF\web.xml ,加入下面代码

 

 

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

 

注册sping factory

修改WEB-INF\flex配置

<factory id="springFactory" class="cn.org.coral.core.flex.factory.FlexSpringFactory" />

 

 

Class属性填写第一步中考入项目SpringFactory类的路径

3 注册beanremoting-config.xml

<destination id="teacherDao">  
      <properties>  
              <factory>springFactory</factory>    
              <source>TeacherDAO</source>  
              
      </properties>  
</destination>

 

 

  编写SpringFactory.java

 

public class FlexSpringFactory implements FlexFactory {

	public FactoryInstance createFactoryInstance(String id, ConfigMap properties) {
		 SpringFactoryInstance instance = new SpringFactoryInstance(this, id, properties);   
	        instance.setSource(properties.getPropertyAsString(SOURCE, instance.getId()));   
	        return instance;
	}
	public Object lookup(FactoryInstance inst) {
		 SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;   
	        return factoryInstance.lookup();   
	}
	public void initialize(String arg0, ConfigMap arg1) {
	
	}

}

public class SpringFactoryInstance extends FactoryInstance   
{   
	public  SpringFactoryInstance(FlexSpringFactory factory, String id, ConfigMap properties)   
    {   
        super(factory, id, properties);   
    }   
    public Object lookup()    
    {          
        ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(flex.messaging.FlexContext.getServletConfig().getServletContext());   
        String beanName = getSource();   
        try  
        {  
            return appContext.getBean(beanName);   
        }   
        catch (NoSuchBeanDefinitionException nexc)   
        {   
            ServiceException e = new ServiceException();   
            throw e;   
        }   
        catch (BeansException bexc)   
        {   
            ServiceException e = new ServiceException();   
            throw e;   
        }    
    }   

 

 login.mxml

 

 

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="326" height="162" title="登录" horizontalAlign="center" verticalAlign="middle">
	<mx:RemoteObject id="loginDao" destination="teacherDao"/> 
	<mx:Script>
		<![CDATA[
			import As.bean.Teacher;
			import mx.rpc.events.FaultEvent;
			import mx.managers.PopUpManager;
			import mx.rpc.events.ResultEvent;
			import mx.controls.Alert;			
			
			public var userId:Label;
			public var userName:Label;
			public var sex:Label;
			public var birth:Label;
			public var department:Label;
			public var profession:Label;
			public var mobile:Label;
		
			public var teacher:Teacher;			
			
			private function callRO(str:String,psw:String):void{
				
			var t:Teacher=new Teacher();
			t.loginname=str;
			t.loginpass=psw;
				
				loginDao.Login(t);
	loginDao.addEventListener(ResultEvent.RESULT,getROResult);
	loginDao.addEventListener(FaultEvent.FAULT,getError);
			}
			private function getError(e:FaultEvent):void{
			Alert.show(e.message.toString());
			}
			private function getROResult(e:ResultEvent) :void {
							
				if(e.result.loginname=="error"){
				
				tip.text="No such user!! ";
				}else
				{
					teacher=e.result as Teacher;
					
					sex.text=e.result.sex;
				userId.text=e.result.id;
				userName.text=e.result.name;
				birth.text=e.result.birth;
				department.text=e.result.department;
				profession.text=e.result.profession;
				mobile.text=e.result.mobile;
				
					
				proccessLogin();
				}
				
			}

		private function proccessLogin():void{
			
			
			
			PopUpManager.removePopUp(this);
			
			}
			
		]]>
	</mx:Script>
	<mx:Label x="34" y="33" text="用户"/>
	<mx:TextInput x="77" y="31" id="userNameTxt"/>
	<mx:Label x="34" y="61" text="密码"/>
	<mx:TextInput x="77" y="59" displayAsPassword="true" id="psw"/>
	<mx:Button x="77" y="90" label="登录" click="callRO(userNameTxt.text,psw.text);"/>
	<mx:Label x="163" y="94" id="tip" color="red"/>	
</mx:TitleWindow>

 

applicationcontext.xml

 

      <bean id="TeacherDAO" class="com.source.bean.TeacherDAO">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
</bean>

 

分享到:
评论
11 楼 tian459830810 2009-03-17  
哎 老兄们呀  有没有搞错 我问的问题超级简单 也不用把俺的帖子评为差贴吧  评为差贴也就算了  你们还集体评  我感觉我。。。。。。。。   嘿嘿
10 楼 tian459830810 2009-03-12  
楼主  这几天正好弄这个东西呢  有好多问题  呵呵  能不能加下我QQ  帮忙解决下  我QQ是:459830810  还有  呵呵 你的那个Teacher类在哪里呀  而且我的总是说"Send Failed"  不知道怎么回事  呵呵 谢谢你
9 楼 starnc 2009-02-09  
import flex.messaging.FactoryInstance;
import flex.messaging.FlexFactory;
import flex.messaging.config.ConfigMap;
是这三个,请问都是在什么包里的
8 楼 starnc 2009-02-09  
继承FlexFactory需要载入什么jar文件吗
7 楼 nivcheral 2008-11-12  
在这个文件services-config.xml注册
6 楼 nivcheral 2008-11-12  


注册sping factory,

修改WEB-INF\flex配置

<factory id="springFactory" class="cn.org.coral.core.flex.factory.FlexSpringFactory" />

5 楼 black.angel 2008-11-12  
请问下
注册sping factory,
修改WEB-INF\flex配置
<factory id="springFactory" class="cn.org.coral.core.flex.factory.FlexSpringFactory" />

是修改 WEB-INF\flex 目录下的哪个 XML 文件???
4 楼 black.angel 2008-11-12  
博主,请给我这个小例子的源码好么,最近小弟也是在整合的时候出现了AOP注入导致,Java脱离spring管理的问题。。。狂郁闷中。
3 楼 nivcheral 2008-11-09  
因为上次写少teacherDao这次加上!!
public class TeacherDAO extends HibernateDaoSupport {
private static final Log log = LogFactory.getLog(TeacherDAO.class);

protected void initDao() {
// do nothing
}

public void save(Teacher transientInstance) {
log.debug("saving Teacher instance");
try {
getHibernateTemplate().save(transientInstance);

log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}

public void delete(Teacher persistentInstance) {
log.debug("deleting Teacher instance");
try {
getHibernateTemplate().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}

public Teacher findById(java.lang.Integer id) {
log.debug("getting Teacher instance with id: " + id);
try {
Teacher instance = (Teacher) getHibernateTemplate().get(
"com.source.bean.Teacher", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}

public List findByExample(Teacher instance) {
log.debug("finding Teacher instance by example");
try {
List results = getHibernateTemplate().findByExample(instance);
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}

public List findByProperty(String propertyName, Object value) {
log.debug("finding Teacher instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Teacher as model where model."
+ propertyName + "= ?";
return getHibernateTemplate().find(queryString, value);
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}

public List findAll() {
log.debug("finding all Teacher instances");
try {
String queryString = "from Teacher";
return getHibernateTemplate().find(queryString);
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}

public Teacher merge(Teacher detachedInstance) {
log.debug("merging Teacher instance");
try {
Teacher result = (Teacher) getHibernateTemplate().merge(
detachedInstance);
log.debug("merge successful");
return result;
} catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
}

public void attachDirty(Teacher instance) {
log.debug("attaching dirty Teacher instance");
try {
getHibernateTemplate().saveOrUpdate(instance);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}

public void attachClean(Teacher instance) {
log.debug("attaching clean Teacher instance");
try {
getHibernateTemplate().lock(instance, LockMode.NONE);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}

public static TeacherDAO getFromApplicationContext(ApplicationContext ctx) {
return (TeacherDAO) ctx.getBean("TeacherDAO");
}
}
2 楼 nivcheral 2008-10-21  
qintao1203 写道
服务器用的是什么

tomcat
1 楼 qintao1203 2008-10-21  
服务器用的是什么

相关推荐

    Flex+spring+hibernate示例

    综上所述,这个示例项目将教给开发者如何将Flex的富客户端体验与Spring的后端服务和Hibernate的数据管理相结合,形成一个完整的、功能强大的Web应用。开发者可以通过学习这个示例,理解如何设置BlazeDS以实现实时...

    flex+Spring+Hibernate整合配置详解

    Flex+Spring+Hibernate 整合是企业级应用开发中常见的一种技术栈组合,它结合了Flex前端的富互联网...通过以上步骤,开发者可以搭建一个完整的Flex+Spring+Hibernate开发环境,为复杂的企业级应用开发提供坚实的基础。

    PureMVC+Flex+BlazeDS+Spring+Hibernate.doc

    这些步骤详细指导了如何逐步建立一个功能齐全的Flex应用,该应用能够通过BlazeDS与Spring服务通信,并利用Hibernate与数据库交互。 在实际的开发过程中,这种整合提供了强大的功能,包括灵活的用户界面设计、高效的...

    flex+Spring+Hibernate+Cairngorm+BlazeDS+Spring BlazeDS Integration整合框架

    使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·

    hibernate+flex+spring 整合,hibernate+flex+spring 集成

    在IT行业中,整合Hibernate、Flex和Spring框架是一个常见的任务,以构建高效、用户交互性强的Web应用程序。这个组合允许开发者利用Hibernate的ORM能力处理数据库操作,Flex的富互联网应用程序(RIA)界面,以及...

    Flex+Spring+hibernate+mySql整合的一个登陆程序

    这个项目结合了前端的Flex(一种基于ActionScript和Flash的RIA开发框架)与后端的Spring(一个全面的Java应用框架)、Hibernate(一个对象关系映射框架)以及MySQL(一个流行的开源关系型数据库),实现了一个完整的...

    MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案

    本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...

    Flex+Spring+Hibernate 环境

    Flex+Spring+Hibernate环境是基于Adobe Flex前端、Spring框架作为服务层、Hibernate作为持久层的集成开发环境。这种组合在Web应用开发中被广泛应用,因为它提供了丰富的用户界面、强大的业务逻辑处理以及高效的...

    flex+hibernate+Spring

    整合 Flex、Hibernate 和 Spring 的目标是构建一个前端界面精美、后端数据处理强大的Web应用。下面我们将详细介绍这个整合过程: 1. **Flex与Spring的整合**: - 使用Spring BlazeDS Integration项目,它提供了...

    Flex+spring+hibernate

    Flex+Spring+Hibernate是开发企业级Web应用的一种经典组合,它们各自在软件开发的不同层面上发挥着关键作用。本文将深入解析这三个技术及其在实际项目中的整合应用。 Flex是Adobe公司推出的基于ActionScript和MXML...

    flex+spring+hibernate+mysql

    标题和描述中提到的"flex+spring+hibernate+mysql"是一个常见的技术栈,用于构建企业级的Web应用程序。这个组合涵盖了前端展示层、后端业务逻辑层、持久化层以及数据库存储层的关键组件。 1. **Flex**: Flex是Adobe...

    Flex+BlazeDS+Spring+Hibernate

    Flex+BlazeDS+Spring+Hibernate 是一个经典的前端与后端集成方案,广泛应用于构建富互联网应用程序(Rich Internet Applications,RIA)。在这个框架组合中,Flex 作为用户界面层,提供了丰富的交互体验;BlazeDS ...

    flex+bleazeds+spring+hibernate教程

    flex+bleazeds+spring+hibernate配置的教程,有详尽过程,是flex与spring结合的不错的教程

    flex+spring+hibernate

    本文将介绍如何搭建一个基于Flex、Spring和Hibernate的开发环境,以及使用BlazeDS作为数据通信中间件。这些技术都是构建现代企业级Web应用的重要组件。 1. **Flex**: Flex 是Adobe开发的一套用于创建富互联网应用...

    Flex+spring+hibernate视屏

    Flex、Spring和Hibernate是三个在IT领域中广泛使用的开源框架,它们分别专注于用户界面、服务层管理和持久化数据。这个“Flex+spring+hibernate”视频教程可能涵盖了如何将这三个技术有效地集成在一起,以便构建...

    flex+bleazeds+spring+hibernate

    通过上述步骤,我们可以成功地整合 Flex、BlazeDS、Spring 和 Hibernate 来开发一个完整的 Web 应用程序。这种整合不仅可以提高开发效率,还能充分利用各种技术的优势,从而构建出功能强大且易于维护的应用系统。在...

    flex+java+spring+hibernate+blazeds整合

    《Flex+Java+Spring+Hibernate+BlazeDS整合详解》 在现代的Web开发中,Flex作为客户端的富互联网应用程序(RIA)框架,与Java、Spring、Hibernate等后端技术结合,可以构建出高效、交互性强的Web应用。本文将详细...

    PureMVC+Flex+BlazeDS+Spring+Hibernate

    标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate”是一个常见的技术栈组合,用于构建企业级的 Rich Internet Applications (RIA)。这个技术栈包括前端开发框架、后端服务通讯、应用服务器、服务端架构和数据持久化...

Global site tag (gtag.js) - Google Analytics