2018-10-08:数据的增加与修改

JSP表单

  • method中的get和post的区别(默认为get)
  1. get地址明参,post将参数隐藏
  2. get不支持正确的中文转码,post才能够正确的转码
  3. get对应调用doget,post对应调用dopost
  4. 从浏览器手动输入参数是get方式

增改

  • 新增
  1. 在dao中添加hibernate的add方法调用session的save方法,需要传对象
  2. 再将方法暴露给dao接口
  3. 在service中添加add方法调用 daoI的add方法,需要传对象
  4. 再将方法暴露给serviceI
  5. 在action中调用service的add方法
  • 全盘复制新增为修改,修改对应的方法名,action调用名,增加action通过方法名

  • 复制查询所有方法 修改为 按主键查询方法,需要注意的是在action中,将返回的
    对象存到request中

  • 在update页面调用按主键查询action,正确使用表达式传参

  • 在list页面循环中添加修改的超链接,超链接传参的格式符合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
// 根据主键查询维修人员
    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>联系电话:</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>状态:</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>联系电话:</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>状态:</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>状态</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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,699评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,124评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,127评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,342评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,356评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,057评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,654评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,572评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,095评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,205评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,343评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,015评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,704评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,196评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,320评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,690评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,348评论 2 358

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,655评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,812评论 0 11
  • Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和...
    Java小辰阅读 1,086评论 0 14
  • 这张照片的房子很有年代感,想把它用彩铅画出来,但是,感觉天空可以加高,右侧树枝可多拉长一点,马路尽头要虚化,加深纵...
    紫晶Jane阅读 317评论 0 2
  • 《品天仙米》 窗明柳绿近午天, 几净汤热升香烟。 静坐细品珍珠菜, 眯眼仿佛遇葛仙。 白云山人 20180413 ...
    赛德传播阅读 382评论 0 2