万里独行
策马牧羊
日历
<
2008年9月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
统计
随笔 - 2
文章 - 1
评论 - 4
引用 - 0
导航
BlogJava
首页
发新随笔
发新文章
联系
聚合
管理
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
2008年8月 (2)
文章档案
2008年11月 (1)
友情链接
中文爱百科
可信赖的中文百科全书。
搜索
最新评论
1. re: NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境
我找了一上午都没找着那些插件,就找着struts2.0的了,spring2.5和Hibernate3都没找着,LZ给我发一下吧,不胜感激,邮箱1834937158@qq.com
--qinglfxy
2. re: NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境[未登录]
例子很不错,就是 没有用到service 这个好像不太规范
--test
3. re: NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境
非常感谢LZ分享
我刚刚接触netbeans 感觉挺好的.不过插件不好找...
我的邮箱:y66901356@163.com
--ly
4. re: NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境
我实在是找不到Hibernate3 for netbeans的插件,我的邮箱:geeve@126.com多谢了。。
--geeve
阅读排行榜
1. NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境(4641)
2. 笔记(144)
评论排行榜
1. NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境(4)
2. 笔记(0)
NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境
Struts和Spring的新版本变动很大,搭建开发环境时配置文件的内容也随着改变了,前段时间为了搭建开发环境费了不小劲,现在发布出来希望能给新手一点帮助。网上关于ssh开发环境的说明都是基于Struts1.2和Spring2的,而且都是以Eclipse为IDE,当然IDE对开发环境的搭建没有明显的影响,但是在NetBeans下搭建ssh开发环境还是快捷得多的。
NetBeans6.1自带了Spring2.5,Struts1.2,没有Hibernate支持,所以为了搭建Struts2.0+Spring2.5+Hibernate3的开发环境,必需下载Struts2.0和Hibernate3的NetBeans插件,这都是很容易找到的,确实找不到就留下邮箱吧。在NetBeans里安装插件的方法: 工具-插件- 已下载-添加插件-安装。
好了,插件安装完毕,重启NetBeans后新建Web项目,修改项目名之后一路默认走下去,在框架选择那一步把Struts2.0、Spring2.5和Hibernate勾上,完成,这样就创建了一个具有ssh支持的Web项目。但是,要整合使用ssh还得进入最麻烦的一步:修改配置文件。下面就以一例子来说明修改配置文件的过程。
新建了上面的项目后,NetBeans自动为你生成了一个HelloWorld的Struts例子,就在这个例子上面改吧。
在源包-缺省包里有一个Struts配置文件example.xml,内容如下
1
<
struts
>
2
<
package
name
="example"
namespace
="/example"
extends
="struts-default"
>
3
<
action
name
="HelloWorld"
class
="example.HelloWorld"
>
4
<
result
>
/example/HelloWorld.jsp
</
result
>
5
</
action
>
6
</
package
>
7
</
struts
>
这只是一个简单的action配置节,这个文件被struts.xml 包含(include),所以服务器能找到它。
接下来是最关键的配置--Spring配置文件applicationContext.xml,以下内容都在<Beans>配置节里添加:
1。首先添加数据源Bean
1
<
bean
id
="dataSource"
class
="org.springframework.jdbc.datasource.DriverManagerDataSource"
>
2
<!--
指定连接数据库的驱动
-->
3
<
property
name
="driverClassName"
value
="com.mysql.jdbc.Driver"
/>
4
<!--
指定连接数据库的URL
-->
5
<
property
name
="url"
value
="jdbc:mysql://localhost:3306/sunsite"
/>
6
<!--
指定连接数据库的用户名
-->
7
<
property
name
="username"
value
="root"
/>
8
<!--
指定连接数据库的密码
-->
9
<
property
name
="password"
value
="123"
/>
10
</
bean
>
添加mysql驱动包这些与主题不靠紧的话就不多说了,注意上面这段配置内容要根据你的实际情况配置url、username和password。
2。让Spring管理Hibernate
1
<!--
管理Hibernate
-->
2
<
bean
id
="sessionFactory"
class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
3
<
property
name
="dataSource"
ref
="dataSource"
>
4
</
property
>
5
<
property
name
="mappingResources"
>
6
</
property
>
7
<
property
name
="hibernateProperties"
>
8
<
value
>
9
hibernate.dialect=org.hibernate.dialect.MySQLDialect
10
</
value
>
11
</
property
>
12
</
bean
>
这样就将SSH整合了。
在源包新建类User,里面只有一个字段user
1
public
class
User
{
2
private
String name;
3
public
String getName()
{
4
return
name;
5
}
6
public
void
setName(String name)
{
7
this
.name
=
name;
8
}
9
}
然后修改Action类HelloWorld.java,它继承于com.opensymphony.xwork2.ActionSupport,继承这个类的好处是你只需要覆盖一个简单的execute()并通过返回字符串来标识跳转到的页面。
在HelloWorld.java添加私有字段user和对应的set方法(可在添加字段后用Netbeans的 重构-封装字段 生成set方法)
添加message字段和get方法(为什么这里是get?因为message是为了后面让jsp读取的,而user是为了让Spring写入的)
1
public
class
HelloWorld
extends
ActionSupport
{
2
3
private
User user;
4
public
void
setUser(User user)
{
5
this
.user
=
user;
6
}
7
private
String message;
8
public
String getMessage()
{
9
return
message;
10
}
11
12
@Override
13
public
String execute()
throws
Exception
{
14
this
.message
=
user.getName();
15
return
SUCCESS;
16
}
17
}
然后在applicationContext.xml里为User实体和HelloWorld Action增加配置节
1
<
bean
name
="user"
class
="sunsite.po.User"
>
2
<
property
name
="name"
value
="Ruby"
></
property
>
3
</
bean
>
4
<
bean
id
="helloAction"
class
="example.HelloWorld"
>
5
<
property
name
="user"
ref
="user"
/>
6
</
bean
>
这样,实体和Action就在Spring的管理之下了,于是可以在example.xml这样配置Action(修改自动生成的配置文件如下)
1
<
struts
>
2
<
package
name
="example"
namespace
="/example"
extends
="struts-default"
>
3
<
action
name
="HelloWorld"
class
="helloAction"
>
4
<
result
>
/example/HelloWorld.jsp
</
result
>
5
</
action
>
6
</
package
>
7
</
struts
>
这里class的值就是前面Spring配置文件里定义的Action Bean,每当有请求发送到HelloWorld时,就会交由这个Bean处理。
修改HelloWorld.jsp的内容如下
1
<%
@ page contentType
=
"
text/html; charset=UTF-8
"
%>
2
<%
@ taglib prefix
=
"
s
"
uri
=
"
/struts-tags
"
%>
3
<
html
>
4
<
head
>
5
<
title
></
title
>
6
</
head
>
7
<
body
>
8
<
h2
><
s:property
value
="message"
/></
h2
>
9
<
ul
>
10
<
li
>
11
<
s:url
id
="url"
action
="HelloWorld"
>
12
</
s:url
>
13
<
s:a
href
="%{url}"
>
获得User的名字
</
s:a
>
14
</
li
>
15
</
ul
>
16
</
body
>
17
</
html
>
运行这个页面,点击“获得User的名字”超链接就能看见“Ruby”了,这是你在Spring配置文件里定义的。到这里Struts和Spring整合的例子就完成了,如果要把Hibernate部分也包含进去,则要增加一个dao类用作数据存取。
首先在源包增加一个Hibernate映射文件user.hbm.xml(可用Netbeans的向导辅助)
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<!
DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
3
<
hibernate-mapping
>
4
<
class
dynamic-insert
="false"
dynamic-update
="false"
mutable
="true"
name
="User"
optimistic-lock
="version"
polymorphism
="implicit"
select-before-update
="false"
table
="user"
>
5
<
property
column
="userName"
name
="name"
type
="string"
/>
6
</
class
>
7
</
hibernate-mapping
>
(这里假设你已经建立mysql数据和user表,里面有userName这个字段)
在Spring配置文件找到刚才的管理Hibernate的配置节,如下方法把Hibernate映射文件添加进去
1
<!--
管理Hibernate
-->
2
<
bean
id
="sessionFactory"
class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
3
<
property
name
="dataSource"
ref
="dataSource"
>
4
</
property
>
5
<
property
name
="mappingResources"
>
6
<
list
>
7
<
value
>
user.hbm.xml
</
value
>
8
</
list
>
9
</
property
>
10
<
property
name
="hibernateProperties"
>
11
<
value
>
12
hibernate.dialect=org.hibernate.dialect.MySQLDialect
13
</
value
>
14
</
property
>
15
</
bean
>
然后在源包添加类UserDao.java
1
import
org.springframework.orm.hibernate3.support.HibernateDaoSupport;
2
3
public
class
UserDao
extends
HibernateDaoSupport
{
4
public
void
save(User user)
throws
Exception
5
{
6
try
7
{
8
getHibernateTemplate().save(user);
9
}
10
catch
(Exception err)
11
{
12
throw
err;
13
}
14
}
15
16
public
User getUser(String userName)
{
17
return
(User)getHibernateTemplate().find(
"
from User as u where u.name = ?
"
, userName).get(
0
);
18
}
19
}
(必须继承于HibernateDaoSupport ,否则无法获取Hibernate上下文)
代码很容易明白,不多说了,然后在applicationContext.xml增加如下配置节
1
<
bean
id
="userDao"
class
="UserDao"
>
2
<
property
name
="sessionFactory"
>
3
<
ref
bean
="sessionFactory"
></
ref
>
4
</
property
>
5
</
bean
>
这里之所以要设置sessionFactory属性,是因为这个dao类继承了HibernateDaoSupport ,dao类正式通过这获得Hibernate支持的。
然后就要修改HelloWorld.java,给它添加一个UserDao私有字段和set方法,删掉原来的user字段。
1
public
class
HelloWorld
extends
ActionSupport
{
2
3
private
UserDao userDao;
4
public
void
setUserDao(UserDao userDao)
{
5
this
.userDao
=
userDao;
6
}
7
8
@Override
9
public
String execute()
throws
Exception
{
10
User user
=
userDao.getUser(
"
ruby
"
);
11
this
.message
=
user.getName();
12
return
SUCCESS;
13
}
14
}
这是再运行HelloWorld.jsp,点击“获得User的名字”,你会看见ruby,于刚才所不同的是,这个字符是从数据库读出的,而不是在Spring配置文件里定义的(当然你的user数据表必须有ruby这个记录,否则读出空值)。
到这里,SHH整合的例程就完成了。为了简便起见,例子没有考虑到有效的分层结构,全部文件直接放在了源包,但这部分不属于如何整合SSH的范畴,所以请读者自己摸索了。
由于这是翻看以前写的例子写下的例程,所以难免代码有错漏,欢迎指出。
posted on 2008-08-07 17:33
万里独行
阅读(4641)
评论(4)
编辑
收藏
评论:
#
re: NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境
geeve
Posted @ 2008-09-14 22:41
我实在是找不到Hibernate3 for netbeans的插件,我的邮箱:geeve@126.com多谢了。。
回复
更多评论
#
re: NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境
ly
Posted @ 2008-10-06 15:50
非常感谢LZ分享
我刚刚接触netbeans 感觉挺好的.不过插件不好找...
我的邮箱:y66901356@163.com
回复
更多评论
#
re: NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境[未登录]
test
Posted @ 2009-08-17 19:07
例子很不错,就是 没有用到service 这个好像不太规范
回复
更多评论
#
re: NetBeans6.1下搭建Struts2.0+Spring2.5+Hibernate3开发环境
qinglfxy
Posted @ 2012-02-01 12:48
我找了一上午都没找着那些插件,就找着struts2.0的了,spring2.5和Hibernate3都没找着,LZ给我发一下吧,不胜感激,邮箱1834937158@qq.com
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
Copyright © 万里独行
Powered by:
博客园
模板提供:
沪江博客