Diary(八)——日志信息删除与修改(下)

目录

 

1. dao层,写修改日志的方法;

2. diaryShow.jsp,在里面添加修改链接;

3. web层,在DiaryServlet里面调用修改日志的方法;

4. 更改完日志后,我们要保存起来;

5. 测试;


1. dao层,写修改日志的方法;

这里我们在DiaryDao里面写一个修改日志的方法;

//修改日志的方法
	public int diaryUpdate(Connection con,Diary diary) throws Exception{
		String sql="update t_diary set title=?,content=?,typeId=? where diaryId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, diary.getTitle());
		pstmt.setString(2, diary.getContent());
		pstmt.setInt(3, diary.getTypeId());
		pstmt.setInt(4,diary.getDiaryId());
		return pstmt.executeUpdate();
	}

 

2. diaryShow.jsp,在里面添加修改链接;

在这里我们找到修改日志的按钮,然后在里面添加一下修改链接就可以了; 

写一个修改的js方法,并传入一个diaryId参数;

<!-- 日志信息修改 -->
<div class="diary_action">
	<button class="btn btn-primary" type="button" onclick="javascript:window.location='diary?action=preSave&diaryId=${diary.diaryId}'">修改日志</button>
	<button class="btn btn-primary" type="button" onclick="javascript:history.back()">返回</button>
	<button class="btn btn-danger" type="button" onclick="diaryDelete(${diary.diaryId})">删除日志</button>
</div>

 

3. web层,在DiaryServlet里面调用修改日志的方法;

在我们原先写的diaryPreSave方法里面写预处理日志信息,

判断是否有diaryId,看看是写日志还是修改日志;

//预处理日志信息的方法
	protected void diaryPreSave(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String diaryId=request.getParameter("diaryId");
		Connection con=null;
		try {
			//判断是否有Id,避免修改日志与写日志重复
			if(StringUtil.isNotEmpty(diaryId)){
				con=dbUtil.getCon();
				Diary diary=diaryDao.diaryShow(con,diaryId);
				request.setAttribute("diary",diary);
			}
			//将得到的mainPage和diarySave连接起来
			request.setAttribute("mainPage", "diary/diarySvae.jsp");
			//内部转发
			request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

这时候我们点击修改日志按钮就会重新跳到写日志的页面;

 

4. 更改完日志后,我们要保存起来;

在DiaryServlet里面我们要在diarySave方法里面获取一下前台的diaryId

String diaryId=request.getParameter("diaryId");

//判断Id是否不为空,不为空就是修改日志
if(StringUtil.isNotEmpty(diaryId)){
	diary.setDiaryId(Integer.parseInt(diaryId));
}

然后在数据库连接里面添加一下逻辑:

只有当diaryId为空时,我们进行添加日志操作; 

当diaryId不为空时,我们进行修改日志操作;

if(StringUtil.isNotEmpty(diaryId)){
		saveNum=diaryDao.diaryUpdate(con, diary);
} else{
		saveNum=diaryDao.diaryAdd(con, diary);
}

在这里我们还需要在diarySave.jsp页面传一下diaryId,这里我们可以设置为隐藏域,不显示在页面上; 

<!-- 操作按钮部分 -->
<div>
<!--在修改日志时候的保存日志的id,将其设置为隐藏域-->
	<input type="hidden" name="diaryId" id="diaryId" value="${diary.diaryId}"/>
	<input type="submit" class="btn btn-primary" value="保存"/>
	<button class="btn btn-primary" type="button" onclick="javascript:history.back()">返回</button>
	<font id="error" color="red">${error }</font>  
</div>

这样就行了!

 

5. 测试;

 

我们点击修改日志:

注意,在这里我们要把类别选择默认设置为之前的类别:

<option value="${diaryTypeCount.diaryTypeId }" ${diaryTypeCount.diaryTypeId==diary.typeId?'selected':'' }>${diaryTypeCount.typeName }</option>

 还有在点击写日记和修改日记这两个不同的页面时,左上角显示的图标是不同的,这里我们需要再写一下逻辑;

diarySave.jsp页面里面我们添加以下内容:

<div class="data_list_title">
	<c:choose>
		<c:when test="${diary.diaryId!=null }">
			<img src="${pageContext.request.contextPath}/images/diary_type_edit_icon.png"/>
			修改日记
		</c:when>
		<c:otherwise>
			<img src="${pageContext.request.contextPath}/images/diary_add_icon.png"/>
			写日记
		</c:otherwise>
	</c:choose>
</div>

点击保存,就可以修改成功了!

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值