Struts + spring MVC + hibernate
6.1 从职责上分为表示层、业务逻辑层、数据持久层和域模块层四层。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。
jsp - action - service - dao
6.2 添加新的跳转页面:
首先添加超链接<a href="${pageContext.request.contextPath}/adminUser_huiyuan.action">会员管理</a>,在action包中AdminUserAction.java中创建huiyuan方法,并在Struts.xml中作出声明:
<action name="adminUser_*" class="adminUserAction" method="{1}">
<result name="huiyuan" >/admin/huiyuan/huiyuan.jsp</result>
</action>
6.3 会员管理页面显示查询到的所有用户:
在action中加入方法
private List<User> alist;
public List<User> getAlist() {
return alist;
}
public void setAlist(List<User> alist) {
this.alist = alist;
}
public String huiyuan() {
// 查看所有会员信息
alist = userService.huiyuan();
// 将获取到的数据显示到页面
ActionContext.getContext().getValueStack().set("alist", alist);
return "huiyuan";
}
然后在业务层即服务包中加入
//业务层查询所有会员信息的方法
public List<User> huiyuan() {
return userDao.huiyuan();
}
接着在控制层dao中加入查询
/**
* Dao中查询所有用户的方法
* @return
*/
public List<User> huiyuan() {
String hql = "from User";
List<User> alist = this.getHibernateTemplate().find(hql);
return alist;
}
最后在Struts中配置<!-- 后台会员管理的Action -->
<result name="huiyuan" >/admin/huiyuan/huiyuan.jsp</result>
6.4 用户登录时用户或密码错误提示用<s:actionerror>时前面出现点如图所示:
![](https://images2015.cnblogs.com/blog/927405/201606/927405-20160604092428117-258095422.png)
解决方案:<ul><li class="font"><s:actionerror/></li></ul>
<style>
ul{
list-style:none;
}
.font{
color:red;
}
</style>
![](file:///D:用户目录我的文档Tencent Files1056339378ImageC2CMVL4CL1MNVEF{CKS7X2A_O1.png)
![](file:///D:用户目录我的文档Tencent Files1056339378ImageC2CMVL4CL1MNVEF{CKS7X2A_O1.png)