<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練習(xí)(完整) 續(xù)集

     

    下載地址:http://oksonic.kc100.net/download/sonic015.rar

     

    將增加以下部份內(nèi)容

     

    注冊新用戶,用戶瀏覽、刪除用戶

     

    現(xiàn)在導(dǎo)入原工程

     

    打開 UserDAO.java 文件,增加以下方法,此方法為增加用戶

    public interface UserDAO {

        public abstract boolean isValidUser(String username, String password);

        public abstract boolean addUser(User user);

    }

     

    打開 UserDAOImp.java 文件,添加接口方法的實(shí)現(xiàn),并為方法編寫以下內(nèi)容:

        public boolean addUser(User user) {

            try {

                this.getHibernateTemplate().save(user);

            } catch (Exception e) {

                System.out.println(e.getMessage());

                return false;

            }

            return true;

        }

     

     

    按下 Ctrl + N 使用向?qū)?chuàng)建 add.jsp AddForm(動態(tài))AddAction.java文件這是注冊新用戶的Action

     

    修改配置內(nèi)容如下

    <action

          attribute="addForm"

          input="/add.jsp"

          name="addForm"

          path="/add"

          scope="request"

          validate="true"

          type="org.springframework.web.struts.DelegatingActionProxy" />

     

    第一句實(shí)現(xiàn)了必須對提交的數(shù)據(jù)進(jìn)行驗(yàn)證

    第二句實(shí)現(xiàn)了和spring集成

     

    修改 AddAction.java 文件,內(nèi)容如下:

     

        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();

            }

        }

     

    關(guān)于在Action中使用 User 對像我在這里沒有使用 IoC 方式進(jìn)行管理這不好希望大家在正式應(yīng)用中使用。

     

    spring配置文件applicationContext.xml中加入以下內(nèi)容

           <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 文件的首行替換為以下內(nèi)容目的是為了使用UTF-8的編碼格式顯示頁面

    <%@ page language="java" contentType="text/html; charset=UTF-8" %>

     

    修改 validation.xml 文件加入以下內(nèi)容

            <form name="addForm">

               <field property="username" depends="required">

                  <arg0 key="prompt.username" />

               </field>

               <field property="password" depends="required">

                  <arg0 key="prompt.password" />

               </field>

           </form>

     

     

    現(xiàn)在整個(gè) AddUser 已經(jīng)完成,如果你覺得不放心的話可以在這里停一停先進(jìn)行這一段的測試!

     

    創(chuàng)建一個(gè)Action用于查詢數(shù)據(jù),名稱為 find

     

    創(chuàng)建 display.jsp 文件,用于顯示所有用戶

     

    創(chuàng)建一個(gè) 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 文件內(nèi)容如下

        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中加入以下內(nèi)容

           <bean name="/find" class="com.test.struts.action.FindAction" singleton="false">

           <property name="userDAO">

               <ref bean="userDAOProxy" />

           </property>

        </bean>

     

    修改 display.jsp 文件內(nèi)容如下

    <%@ 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>

     

    現(xiàn)在整個(gè) Display 已經(jīng)完成,如果你覺得不放心的話可以在這里停一停先進(jìn)行這一段的測試!

     

    新建一個(gè) Action 用于刪除選中的用戶,name:del

     

    修改 struts-config.xml 文件中的以下內(nèi)容為:

    <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 文件添加新增的兩個(gè)方法并編寫以下內(nèi)容

        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 文件內(nèi)容如下

    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中加入以下內(nèi)容

           <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>

     

     

    代碼已經(jīng)全部完成,可以進(jìn)行測試了!!!

     

    在添加用戶的過程中出現(xiàn)了錯(cuò)誤,就是沒有驗(yàn)證就直接提交了,并能夠提交空的用戶!

    這里解決的方式有多種,修改程是肯定的了,還有就是在設(shè)計(jì)數(shù)據(jù)庫的時(shí)候加上限制如將 username 和 password 為字設(shè)置為 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 閱讀(176) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲精品动漫在线| 亚洲AV日韩综合一区| jzzijzzij在线观看亚洲熟妇| 一个人看的www在线免费视频| 久久这里只精品99re免费| 午夜免费福利影院| 国产亚洲精品无码成人| 亚洲偷自拍另类图片二区| a级在线观看免费| 日韩毛片无码永久免费看| 国产av天堂亚洲国产av天堂| 亚洲日韩国产一区二区三区在线| 香蕉免费看一区二区三区| 成人免费看片又大又黄| 亚洲va中文字幕无码久久不卡| 亚洲熟妇AV一区二区三区浪潮| 成人精品一区二区三区不卡免费看| 大地资源在线观看免费高清| 国产亚洲免费的视频看| 亚洲AV成人精品一区二区三区| 日韩精品久久久久久免费| 国产在线19禁免费观看| 337p日本欧洲亚洲大胆色噜噜| 无码的免费不卡毛片视频| 丁香花免费完整高清观看| 亚洲色婷婷综合久久| 久久久亚洲精华液精华液精华液| 99视频有精品视频免费观看| 亚洲区小说区图片区| 中文字幕在线观看亚洲日韩| 久久午夜夜伦鲁鲁片无码免费| 亚洲国产精品一区二区九九 | 亚洲αⅴ无码乱码在线观看性色 | 中国人xxxxx69免费视频| 亚洲日韩人妻第一页| 亚洲人成色777777老人头| 5555在线播放免费播放| 亚洲人成无码网站| 青娱乐在线视频免费观看| 四虎成人免费网站在线| 亚洲无限乱码一二三四区|