1. 程式人生 > >ssh框架

ssh框架

word 框架 cpp pri 沒有 har abstract adduser org

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="login.jsp">Login</a>

<br>

<a href="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="<bean:writename="element" property="id"/>">

<bean:write name="element" property="username"/>

</td></tr>

</logic:iterate>

</table>

<INPUT type="submit" name="Submit" value="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="login.jsp">Login</a>

<br>

<a href="add.jsp">Add User</a>

<br>

<a href="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> <html>

<head>

<title>Struts+Spring+Hibernate</title>

</head>



../----------------------------------------
<body>

<a href="login.jsp">Login</a>

<br>

<a href="add.jsp">Add User</a>

<br>

<a href="find.do">Display</a>

</body>

</html>

../----------------------------------------
<html>

<head>

<title>Struts+Spring+Hibernate</title>

</head>



<body>

<a href="login.jsp">Login</a>

<br>

<a href="add.jsp">Add User</a>

<br>

<a href="find.do">Display</a>

</body>

</html> 2006-05-19 18:39 by dfg <html>

<head>

<title>Struts+Spring+Hibernate</title>

</head>



<body>

<a href="login.jsp">Login</a>

<br>

<a href="add.jsp">Add User</a>

<br>

<a href="find.do">Display</a>

</body>

</html>
只有註冊用戶登錄後才能發表評論。
網站導航: 博客園 IT新聞 知識庫 C++博客 博問 管理
相關文章:
  • 為struts-menu的樹型菜單加入復選框
  • 速動畫教程第三十三集 使用NetBean開發之用戶管理
  • 速動畫教程第三十二集 使用NetBean5.5可視環境開發JSF應用程序
  • 速動畫教程第三十一集 使用Axis2構建Hello應用
  • 速動畫教程第二十九集 單點登錄CAS的使用方法
  • 建了個網站,以供教程交流使用!www.oksonic.com.cn
  • 速動畫教程第二十八集 Struts+Velocity簡單集成
  • 速動畫教程第二十七集 SVN的安裝和配置
  • 發布個人收藏資料集!文件共有69.8M
  • 速動畫教程第二十六集 WebWork2 開發教程

ssh框架