<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-208  評論-469  文章-30  trackbacks-0


    動畫教程第十五集

     

    本集為第十二集Struts+Spring+Hibernate練習(完整) 續集

     

    下載地址:http://oksonic.kc100.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:write name="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>

     

    可以了,這集就講到這里了!下集再見!

    posted on 2006-01-17 19:57 EricWong 閱讀(171) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 真实国产乱子伦精品免费| 亚洲另类春色国产精品| 亚洲精品国产自在久久| 全黄性性激高免费视频| 狼友av永久网站免费观看| 卡1卡2卡3卡4卡5免费视频| 在线免费视频一区| 国产精品极品美女免费观看| 免费黄色小视频网站| 日本免费的一级v一片| 波多野结衣久久高清免费| 成人免费无码精品国产电影| 国产美女无遮挡免费视频| 亚洲AV中文无码乱人伦| 国产精品V亚洲精品V日韩精品| 久久久亚洲精品蜜桃臀| 国产精品亚洲а∨无码播放| 亚洲国产精品国自产电影| 亚洲美女中文字幕| 亚洲mv国产精品mv日本mv| 亚洲狠狠婷婷综合久久蜜芽| 久久亚洲欧美国产精品| 一级黄色免费大片| 免费人成黄页在线观看日本| aⅴ在线免费观看| 永久在线毛片免费观看| 亚洲视频在线一区二区| 亚洲av无码一区二区三区乱子伦| 亚洲国产国产综合一区首页| 亚洲无吗在线视频| 美女羞羞免费视频网站| 99热在线日韩精品免费| 8x8×在线永久免费视频| 四虎成人免费观看在线网址| 亚洲国产a级视频| 亚洲ⅴ国产v天堂a无码二区| 亚洲AV无码精品蜜桃| 国产亚洲综合久久| 三年片免费观看大全国语| 1000部拍拍拍18免费网站| 国产又大又粗又硬又长免费|