03MVC日志系统之——编辑日志

Posted Dobe张的欢乐课堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03MVC日志系统之——编辑日志相关的知识,希望对你有一定的参考价值。

实现思路:

1)先向DiaryServlet请求查询某篇日志,并将查询到的日志对象带到editDiary.jsp页面,显示在对应的表单中;当用户点击修改按钮后,再将修改后的日志内容提交给DiaryServlet,请求更新。

2)myDiary.jsp页面中点击编辑链接,链接到DiaryServlet,并传递action=edit&id=53,其中53指欲编辑的日志的编号。

3)DiaryServlet根据行为参数action=edit判断是编辑日志的请求,只需调用DiaryDao.getDiaryById()方法查询到对应的日志对象,在跳转到editDiary.jsp时带过去。

4)editDiary.jsp页面中,从request中取出Diary日志对象,显示在对应的表单中。

5)当用户修改了日志内容并点击修改按钮后,将修改后的表单内容提交给DiaryServlet并传递参数action=update&id=5353是指日志的编号)。

6)DiaryServlet处理update请求,调用DiaryDao.updateDiary()方法更新日志内容。更新完毕后跳转到DiaryServlet?action=find&id=53查看修改后的日志详情。(也可以考虑跳转到DiaryServlet?action=list,回到日志列表页面。)

 

1、向DiaryServlet发送编辑请求

 

2、在DiaryServlet中响应编辑请求

03MVC日志系统之——编辑日志

 

3、在editDiary.jsp页面显示待编辑内容

编辑日志页面editDiary.jsp与发表日志页面newDiary.jsp,在界面上是一样的,只不过一个是修改按钮,一个是添加按钮。editDiary.jsp的初始代码如下:

03MVC日志系统之——编辑日志

然后在request中取出传递过来的diary对象,将日志标题、日志内容、是否公开显示在对应的表单中,代码如下:

03MVC日志系统之——编辑日志

 

4、向DiaryServlet发送更新请求

当用户点击修改按钮时,会将修改后的日志信息提交给DiaryServlet进行更新处理。这里需把form标签的action属性设为:servlet/DiaryServlet?action=update&id=53形式,其中action=update表示是更新日志的请求,id=<%=diary.getDiaryID()%>传递日志编号,用于标明更新的是哪一篇日志。(代码如上图所示)

DiaryServlet中处理update请求分三步:

1)获取修改后的日志信息,并封装成新的Diary对象;其中标题、内容、是否公开由用户修改,发表日期取当前日期,作者是session中的登录用户,日志编号从传递的参数id获得。

2)调用DiaryDaoupdateDiary()方法,对日志进行更新操作;

3)根据updateDiary()方法的返回值,决定程序流程。如果返回值大于0,表示更新成功,然后去显示更新后的日志详情。


注:在detailDiary.jsp页面中最好添加一个链接<a href=”servlet/DiaryServlet?action=list”>返回日志列表</a>,方便页面间的跳转。

 

5、DiaryDao.update()方法实现日志更新

DiaryDao类的update()方法传入修改后的Diary对象,返回整型数据,代表更新成功、失败或异常。update()方法会根据日志编号,将修改后的标题、内容、是否公开以及发表日期更新,代码截图如下:


至此,日志编辑功能完全实现。

后续问题:

格式处理——如文本框中的换行代码是\n,而网页中显示换行的代码是<br>,那么在编辑和显示日志时,需要作替换。

是否登录——日志编辑、删除,以及私密日志的查看都必须在作者已登录的前提下,本案例中没有作登录判断,可以通过过滤器类实现。过滤器请大家自己找资料学习。


以上是关于03MVC日志系统之——编辑日志的主要内容,如果未能解决你的问题,请参考以下文章

02MVC日志系统之——日志列表

MVC日志系统之——项目准备

01MVC日志系统之——用户登录

转载Airbnb 的核心日志系统架构及主要系统模块的设计之道

Linux系统shell脚本之mysql的日志备份

.net MVC中异常日志