2018-10-08:數(shù)據(jù)的增加與修改

JSP表單

  • method中的get和post的區(qū)別(默認(rèn)為get)
  1. get地址明參,post將參數(shù)隱藏
  2. get不支持正確的中文轉(zhuǎn)碼,post才能夠正確的轉(zhuǎn)碼
  3. get對應(yīng)調(diào)用doget,post對應(yīng)調(diào)用dopost
  4. 從瀏覽器手動輸入?yún)?shù)是get方式

增改

  • 新增
  1. 在dao中添加hibernate的add方法調(diào)用session的save方法,需要傳對象
  2. 再將方法暴露給dao接口
  3. 在service中添加add方法調(diào)用 daoI的add方法,需要傳對象
  4. 再將方法暴露給serviceI
  5. 在action中調(diào)用service的add方法
  • 全盤復(fù)制新增為修改,修改對應(yīng)的方法名,action調(diào)用名,增加action通過方法名

  • 復(fù)制查詢所有方法 修改為 按主鍵查詢方法,需要注意的是在action中,將返回的
    對象存到request中

  • 在update頁面調(diào)用按主鍵查詢action,正確使用表達(dá)式傳參

  • 在list頁面循環(huán)中添加修改的超鏈接,超鏈接傳參的格式符合update頁面需要的格式


  1. struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <include file="struts-Serviceman.xml"></include>
    <package name="struts2" extends="struts-default" namespace="/">
    </package>
</struts>
  1. struts-Serviceman.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <package name="struts-Serviceman" extends="struts2" namespace="/">
        <action name="ServicemanAction_*" class="repairsystem.action.ServicemanAction" method="{1}">
                <allowed-methods>getServicemanInfo,addServiceman,updateServiceman,getServicemanInfoBySid</allowed-methods>
        </action>   
    </package>
</struts>
  1. ServicemanDao.java
package repairsystem.dao.imp;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import repairsystem.dao.ServicemanDaoI;
import repairsystem.entity.Serviceman;
import repairsystem.factory.HibernateSessionFactory;

public class ServicemanDao implements ServicemanDaoI{
    private Session session = HibernateSessionFactory.getSession();
    private Transaction tran;
    
    public List<Serviceman> getServicemanInfo() {
        Query query = session.createQuery("From Serviceman");
        List<Serviceman> servicemans = query.list();
        HibernateSessionFactory.closeSession();
        return servicemans;
    }
    public Serializable addServiceman(Serviceman serviceman){
        tran = session.beginTransaction();
        Serializable result =  session.save(serviceman);
        tran.commit();
        HibernateSessionFactory.closeSession();
        return result;
        
    }
    
    public Serializable updateServiceman(Serviceman serviceman){
        tran = session.beginTransaction();
        session.update(serviceman);
        tran.commit();
        HibernateSessionFactory.closeSession();
        return 0;
        
    }
    public Serviceman getServicemanInfoBySid(Integer sid){
        Serviceman serviceman = session.load(Serviceman.class,sid);
        return serviceman;
        
    }
}
  1. ServicemanDaoI.java
public interface ServicemanDaoI {
    public List<Serviceman> getServicemanInfo();

    public Serializable addServiceman(Serviceman serviceman);

    public Serializable updateServiceman(Serviceman serviceman);

    public Serviceman getServicemanInfoBySid(Integer sid);
}
  1. ServicemanService.java
public Serializable addServiceman(Serviceman serviceman){
        return servicemanDaoI.addServiceman(serviceman);
    }

    public Serializable updateServiceman(Serviceman serviceman){
        return servicemanDaoI.updateServiceman(serviceman);
    }

    public Serviceman getServicemanInfoBySid(Integer sid){
        return servicemanDaoI.getServicemanInfoBySid(sid);
    }
  1. ServicemanServiceI.java
public interface ServicemanServiceI {
    public List<Serviceman> getServicemanInfo();

    public Serializable addServiceman(Serviceman serviceman);

    public Serializable updateServiceman(Serviceman serviceman);

    public Serviceman getServicemanInfoBySid(Integer sid);
}
  1. ServicemanAction.java
// 根據(jù)主鍵查詢維修人員
    public String getServicemanInfoBySid() throws Exception {
        Serviceman dbserviceman = servicemanServiceI.getServicemanInfoBySid(serviceman.getSid());
        ServletActionContext.getRequest().setAttribute("serviceman", dbserviceman);
        // System.out.println(dbteacher.getTname());
        return null;
    }

    // 增加維修人員
    public String addServiceman() {
        Serializable result = servicemanServiceI.addServiceman(serviceman);
        return null;
    }

    // 修改維修人員信息
    public String updateServiceman() {
        Serializable result = servicemanServiceI.updateServiceman(serviceman);
        return null;
    }
  1. add.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ADD</title>
<style type="text/css">
 .content{width:680px;margin-left: auto;margin-right: auto;}
 .content form div > span:nth-child(1){width:140px;display: inline-block;}
 .content form div > span > input{width:530px;height:30px;margin-top:10px;}
 #add{width:60px; height:36px;margin-top:10px;margin-left:540px;}
</style>
</head>
<body>
<div class="content">
 <form action="ServicemanAction_addServiceman.action"  method="post">
  <div><span>維修者編號:</span><span><input type="text" name="serviceman.sid"></span></div>
  <div><span>維修者姓名:</span><span><input type="text" name="serviceman.snam"></span></div>
  <div><span>聯(lián)系電話:</span><span><input type="text" name="serviceman.sphone"></span></div>
  <div><span>相片:</span><span><input type="text" name="serviceman.simg"></span></div>
  <div><span>密碼:</span><span><input type="text" name="serviceman.spassword"></span></div>
  <div><span>地址:</span><span><input type="text" name="serviceman.saddress"></span></div>
  <div><span>狀態(tài):</span><span><input type="text" name="serviceman.sstatus"></span></div>
  <div><input id="add" type="submit" value="增加"></div>
 </form>
</div>
</body>
</html>
  1. update.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>UPDATE</title>
<style type="text/css">
 .content{width:680px;margin-left: auto;margin-right: auto;}
 .content form div > span:nth-child(1){width:140px;display: inline-block;}
 .content form div > span > input{width:530px;height:30px;margin-top:10px;}
 #update{width:60px; height:36px;margin-top:10px;margin-left:540px;}
</style>
</head>
<body>
    <s:action name="ServicemanAction_getServicemanInfoBySid" executeResult="false"
        namespace="/">
        <s:param name="serviceman.sid">
            <s:property value="#parameters.sid" />
        </s:param>
    </s:action>
    <div class="content">
        <form action="ServicemanAction_updateServiceman.action" method="post">
        <div><span>維修者編號:</span><span><input type="text" name="serviceman.sid" value="${serviceman.sid}"></span></div>
        <div><span>維修者姓名:</span><span><input type="text" name="serviceman.snam" value="${serviceman.snam}"></span></div>
        <div><span>聯(lián)系電話:</span><span><input type="text" name="serviceman.sphone" value="${serviceman.sphone}"></span></div>
        <div><span>相片:</span><span><input type="text" name="serviceman.simg" value="${serviceman.simg}"></span></div>
        <div><span>密碼:</span><span><input type="text" name="serviceman.spassword" value="${serviceman.spassword}"></span></div>
        <div><span>地址:</span><span><input type="text" name="serviceman.saddress" value="${serviceman.saddress}"></span></div>
        <div><span>狀態(tài):</span><span><input type="text" name="serviceman.sstatus" value="${serviceman.sstatus}"></span></div>
        <div><input id="update" type="submit" value="修改"></div>
        </form>
    </div>
</body>
</html>
  1. serviceman.jsp
    <table border="1">
        <tr>
            <td>維修者id</td>
            <td>姓名</td>
            <td>電話</td>
            <td>密碼</td>
            <td>住址</td>
            <td>狀態(tài)</td>
            <td>操作</td>
        </tr>
        <s:iterator var="serviceman" value="#request.servicemans">
            <tr>
                <td><s:property value="#serviceman.sid" /></td>
                <td><s:property value="#serviceman.snam" /></td>
                <td><s:property value="#serviceman.sphone" /></td>
                <td><s:property value="#serviceman.spassword" /></td>
                <td><s:property value="#serviceman.saddress" /></td>
                <td><s:property value="#serviceman.sstatus" /></td>
                <td><a href="Serviceman/update.jsp?sid=${serviceman.sid}">修改</a></td>
            </tr>
        </s:iterator>
        <tr>
            <td><a href="Serviceman/add.jsp">增加</a></td>
        </tr>
    </table>

新增add編碼流程.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,816評論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,031評論 0 11
  • Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和...
    Java小辰閱讀 1,157評論 0 14
  • 這張照片的房子很有年代感,想把它用彩鉛畫出來,但是,感覺天空可以加高,右側(cè)樹枝可多拉長一點,馬路盡頭要虛化,加深縱...
    紫晶Jane閱讀 370評論 0 2
  • 《品天仙米》 窗明柳綠近午天, 幾凈湯熱升香煙。 靜坐細(xì)品珍珠菜, 瞇眼仿佛遇葛仙。 白云山人 20180413 ...
    賽德傳播閱讀 427評論 0 2

友情鏈接更多精彩內(nèi)容