首页 > 代码库 > ssh框架
ssh框架
Struts+Spring+Hibernate练习(完整)的续集录像教程
速动画教程第十五集
本集为第十二集Struts+Spring+Hibernate练习(完整) 的 续集
下载地址:http://sonic.peakle.net/download/sonic015.rar
将增加以下部份内容
注册新用户,用户浏览、删除用户
现在导入原工程
打开 UserDAO.java 文件,增加以下方法,此方法为增加用户
public interface UserDAO {
public abstract boolean isValidUser(String username, String password);
public abstract boolean addUser(User user);
}
打开 UserDAOImp.java 文件,添加接口方法的实现,并为方法编写以下内容:
public boolean addUser(User user) {
try {
this.getHibernateTemplate().save(user);
} catch (Exception e) {
System.out.println(e.getMessage());
return false;
}
return true;
}
按下 Ctrl + N ,使用向导创建 add.jsp 、AddForm(动态)、AddAction.java文件,这是注册新用户的Action
修改配置内容如下:
<action
attribute="addForm"
input="/add.jsp"
name="addForm"
path="/add"
scope="request"
validate="true"
type="org.springframework.web.struts.DelegatingActionProxy"/>
第一句实现了必须对提交的数据进行验证
第二句实现了和spring集成
修改 AddAction.java 文件,内容如下:
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
DynaActionForm addForm = (DynaActionForm) form;
User user=new User();
user.setUsername(addForm.getString("username"));
user.setPassword(addForm.getString("password"));
addForm.set("password", null);
if (userDAO.addUser(user)) {
return mapping.findForward("indexGo");
} else {
return mapping.getInputForward();
}
}
关于在Action中使用 User 对像,我在这里没有使用 IoC 方式进行管理,这不好,希望大家在正式应用中使用。
在spring配置文件(applicationContext.xml)中加入以下内容:
<bean name="/add"class="com.test.struts.action.AddAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
</bean>
修改 index.jsp 文件
<html>
<head>
<title>Struts+Spring+Hibernate</title>
</head>
<body>
<a href="http://www.mamicode.com/login.jsp">Login</a>
<br>
<a href="http://www.mamicode.com/add.jsp">Add User</a>
</body>
</html>
修改 add.jsp 文件的首行,替换为以下内容,目的是为了使用UTF-8的编码格式显示页面
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
修改 validation.xml 文件,加入以下内容:
<form name="addForm">
<field property="username" depends="required">
<arg0 key="prompt.username" />
</field>
<field property="password" depends="required">
<arg0 key="prompt.password" />
</field>
</form>
现在整个 AddUser 已经完成,如果你觉得不放心的话可以在这里停一停先进行这一段的测试!
创建一个Action用于查询数据,名称为 find
创建 display.jsp 文件,用于显示所有用户
创建一个 forward 指向 display.jsp 选中 redirect
修改 UserDAO.java 文件,增加 findAllUser() 方法,代码如下:
public abstract List findAllUser();
修改 UserDAOImp.java 文件,增加 findAllUser() 方法,代码如下:
public List findAllUser() {
List users=this.getHibernateTemplate().find("from User u");
if(users.size()>0)
return users;
return null;
}
修改 struts-config.xml 文件
<action path="/find"type="org.springframework.web.struts.DelegatingActionProxy"/>
修改 FindAction.java 文件,内容如下:
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
List users=userDAO.findAllUser();
if(users!=null){
HttpSession session=request.getSession();
session.setAttribute("users",users);
return mapping.findForward("displayGo");
}
return mapping.getInputForward();
}
在spring配置文件(applicationContext.xml)中加入以下内容:
<bean name="/find"class="com.test.struts.action.FindAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
</bean>
修改 display.jsp 文件,内容如下:
<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean"prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html"prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic"prefix="logic"%>
<html>
<head>
<title>DISPLAY</title>
</head>
<body>
<logic:present name="users">
<form action="del.do">
<table border="1">
<logic:iterate id="element" name="users">
<tr><td width="100">
<input type="radio" name="select" value="http://www.mamicode.com/ <bean:write name="element" property="username"/> </td></tr> </logic:iterate> </table> <INPUT type="submit" name="Submit" value="http://www.mamicode.com/submit"> </form> </logic:present> </body> </html> 现在整个 Display 已经完成,如果你觉得不放心的话可以在这里停一停先进行这一段的测试! 新建一个 Action 用于删除选中的用户,name:del 修改 struts-config.xml 文件中的以下内容为: <action path="/del"type="org.springframework.web.struts.DelegatingActionProxy"/> 修改 UserDAO.java 文件,增加以下方法 public interface UserDAO { public abstract boolean isValidUser(String username, String password); public abstract boolean addUser(User user); public abstract List findAllUser(); public abstract boolean delUser(Integer lid); } 修改 UserDAOImp.java 文件,添加新增的两个方法,并编写以下内容: public boolean delUser(Integer lid) { try { User user=(User)this.getHibernateTemplate().load(User.class,lid); this.getHibernateTemplate().delete(user); } catch (Exception e) { System.out.println(e.getMessage()); return false; } return true; } 修改 DelAction.java 文件,内容如下: public class DelAction extends Action { private UserDAO userDAO; public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { Integer selid=Integer.valueOf(request.getParameter("select")); if(userDAO.delUser(selid)) return mapping.findForward("indexGo"); return mapping.getInputForward(); } } 在spring配置文件(applicationContext.xml)中加入以下内容: <bean name="/del"class="com.test.struts.action.DelAction" singleton="false"> <property name="userDAO"> <ref bean="userDAOProxy" /> </property> </bean> 修改 index.jsp 文件 <html> <head> <title>Struts+Spring+Hibernate</title> </head> <body> <a href="http://www.mamicode.com/login.jsp">Login</a> <br> <a href="http://www.mamicode.com/add.jsp">Add User</a> <br> <a href="http://www.mamicode.com/find.do">Display</a> </body> </html> 代码已经全部完成,可以进行测试了!!! 在添加用户的过程中出现了错误,就是没有验证就直接提交了,并能够提交空的用户! 这里解决的方式有多种,修改程是肯定的了,还有就是在设计数据库的时候加上限制如将 username 和 password 为字设置为 not null 将修改这一段 <form-bean name="addForm"type="org.apache.struts.action.DynaActionForm"> <form-property name="password" type="java.lang.String"/> <form-property name="username" type="java.lang.String"/> </form-bean> 修改后: <form-bean name="addForm"type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="password" type="java.lang.String"/> <form-property name="username" type="java.lang.String"/> </form-bean> 可以了,这集就讲到这里了!下集再见!
Feedback
修改 AddAction.java,添加
private User user;
public User getUser(){
return user;
}
public void setUser(User user){
this.user=user;
}
修改 applicationContext.xml
加入
<bean id="user" class="com.app.Hibernate.User" />
修改下面的
<bean name="/add" class="com.app.struts.action.AddAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
<property name="user">
<ref bean="user" />
</property>
</bean>
<head>
<title>Struts+Spring+Hibernate</title>
</head>
../----------------------------------------
<body>
<a href="http://www.mamicode.com/login.jsp">Login</a>
<br>
<a href="http://www.mamicode.com/add.jsp">Add User</a>
<br>
<a href="http://www.mamicode.com/find.do">Display</a>
</body>
</html>
<html>
<head>
<title>Struts+Spring+Hibernate</title>
</head>
<body>
<a href="http://www.mamicode.com/login.jsp">Login</a>
<br>
<a href="http://www.mamicode.com/add.jsp">Add User</a>
<br>
<a href="http://www.mamicode.com/find.do">Display</a>
</body>
</html>
<head>
<title>Struts+Spring+Hibernate</title>
</head>
<body>
<a href="http://www.mamicode.com/login.jsp">Login</a>
<br>
<a href="http://www.mamicode.com/add.jsp">Add User</a>
<br>
<a href="http://www.mamicode.com/find.do">Display</a>
</body>
</html>
只有注册用户登录后才能发表评论。 | ||
|
||
网站导航:
博客园 IT新闻 知识库 C++博客 博问 管理
|
||
相关文章:
|
ssh框架