articleList.jsp

<%@  taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<html>

<head>

<title>All Articles</title>

</head>

<body>

<h1>List Articles</h1>

<a href="articles/add.html">Add Article</a>

<c:if test="${!empty articles}">

<table>

<tr>

<th>Article ID</th>

<th>Article Name</th>

<th>Article Desc</th>

<th>Added Date</th>

</tr>

<c:forEach items="${articles}" var="article">

<tr>

<td><c:out value="${article.articleId}"/></td>

<td><c:out value="${article.articleName}"/></td>

<td><c:out value="${article.articleDesc}"/></td>

<td><c:out value="${article.addedDate}"/></td>

<!-- <td><a href="#" onclick="getData('articles.do?actionMethod=delete&queryId=${article.articleId}','','workspace');">delete</a></td>  -->

<!-- <td><a href="/articles/delete/${article.articleId}">delete</a></td>  -->
<td><a href="articles/delete.do?ID=${article.articleId}">delete</a></td>
<td><a href="articles/edit.do?ID=${article.articleId}">edit</a></td>
</tr> </c:forEach> </table> </c:if> </body>
</html>

DeleteArticle.java

从上个页面获取ID值,并且赋给ids

 package net.roseindia.controller;
import net.roseindia.model.Article;
import net.roseindia.service.ArticleService; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping("/articles")
public class DeleteController {
@Autowired
private ArticleService articleService; @RequestMapping(value="/delete")
public String deleteService(@RequestParam("ID") final Integer ids) {
System.out.println("delete"+"ID="+ids);
articleService.deleteService(ids); return "redirect:/articles.html"; }
@RequestMapping(value="/edit")
public ModelAndView editSerivie(@RequestParam("ID") final Integer ids,
@ModelAttribute("article") Article article,BindingResult result,final Model model){
System.out.println("edit ID"+ids);
model.addAttribute("articleId",ids);
return new ModelAndView("editArticle"); }
/**
@RequestMapping(value = "/add", method = RequestMethod.GET)
public ModelAndView addArticle(@ModelAttribute("article") Article article,
BindingResult result) {
return new ModelAndView("addArticle");
}**/
}

把ids给articleId

articleId作为模型属性能够传给jsp页面

editArticle.jsp

 <%@  taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 <%@  taglib  uri="http://www.springframework.org/tags/form" prefix="form"%>

 <html>

 <head><title>Edit Article</title></head>

 <body>

 <h1>Edit Article</h1>

 <c:url var="viewArticlesUrl" value="/articles.html" />

 <a href="${viewArticlesUrl}">Show All Articles</a>

 <br />

 <br />

 <c:url var="editSaveArticleUrl" value="/articles/editSave.html?ID=${articleId}" />

 <form:form modelAttribute="article" method="POST" action="${editSaveArticleUrl}">

 <c:out value="Article ID:"></c:out>
<c:out value="${articleId}"/>
<br />
<br /> <form:label path="articleName">Article Name:</form:label> <form:input path="articleName" /> <br /> <form:label path="articleDesc">Article Desc:</form:label> <form:textarea path="articleDesc" /> <br /> <input type="submit" value="Save Article" /> </form:form> </body> </html>

点击保存后被ArticleController捕获,并做处理,在Dao层进行update数据!做完处理后显示在article.html页面

ArticleController.java

 package net.roseindia.controller;

 import java.util.HashMap;
import java.util.Map; import net.roseindia.model.Article;
import net.roseindia.service.ArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping("/articles")
public class ArticleController { @Autowired
private ArticleService articleService; @RequestMapping(value = "/save", method = RequestMethod.POST)
public ModelAndView saveArticle(@ModelAttribute(" article") Article article,
BindingResult result) {
System.out.println("save's articleName"+article.getArticleName());
articleService.addArticle(article);
return new ModelAndView("redirect:/articles.html");
} @RequestMapping(value = "/editSave", method = RequestMethod.POST)
public ModelAndView editSaveArticle(@RequestParam("ID") final Integer ids,
@ModelAttribute(" article") Article article,
BindingResult result) {
System.out.println("editSaveController--id"+ids);
System.out.println("editSave's articleName"+article.getArticleName());
articleService.updateArticle(article,ids);
return new ModelAndView("redirect:/articles.html");
} /**@RequestMapping(value="/delete",method = RequestMethod.POST)
public String deleteService(@RequestParam("ID") final Integer ids) {
System.out.println("hello"+"ID="+ids);
articleService.deleteService(ids);
return "redirect:/articles.html";
}
**/ @RequestMapping(method = RequestMethod.GET)
public ModelAndView listArticles() {
Map<String, Object> model = new HashMap<String, Object>();
model.put("articles", articleService.listArticles()); return new ModelAndView("articlesList", model);
} @RequestMapping(value = "/add", method = RequestMethod.GET)
public ModelAndView addArticle(@ModelAttribute("article") Article article,
BindingResult result) {
return new ModelAndView("addArticle");
} }

ArticleDaoImpl.java

在Dao层进行update数据!做完处理后显示在article.html页面

 package net.roseindia.dao;

 import java.util.Date;
import java.util.List; import net.roseindia.model.Article; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; @Repository("articleDao")
public class ArticleDaoImpl implements ArticleDao { @Autowired
private SessionFactory sessionFactory; // To Save the article detail
public void saveArticle(Article article) {
article.setAddedDate(new Date());
sessionFactory.getCurrentSession().saveOrUpdate(article);
}
public void deleteArticle(Integer articleId){
System.out.println("Dao-->"+articleId);
Session session=sessionFactory.openSession();
Article article = (Article) session.get( Article.class,articleId);
session.beginTransaction();
if (null != article) {
session.delete(article);
}
session.getTransaction().commit();
session.close(); }
public void updateArticle(Article article,Integer ids){
System.out.println("upadateDao--->"+ids);
System.out.println("upadateDao--->"+article.getArticleName());
Session session=sessionFactory.openSession();
session.beginTransaction();
Article newArticle=(Article)session.get(Article.class, ids);
newArticle.setArticleName(article.getArticleName());
newArticle.setArticleDesc(article.getArticleDesc());
session.update(newArticle);
session.getTransaction().commit();
session.clear(); }
// To get list of all articles
@SuppressWarnings("unchecked")
public List<Article> listArticles() {
return (List<Article>) sessionFactory.getCurrentSession().createCriteria(Article.class).list();
}
}

SpringMVC修改功能的更多相关文章

  1. SpringMVC由浅入深day01_9商品修改功能开发

    9 商品修改功能开发 9.1 需求 操作流程: 1.进入商品查询列表页面 2.点击修改,进入商品修改页面,页面中显示了要修改的商品(从数据库查询) 要修改的商品从数据库查询,根据商品id(主键)查询商 ...

  2. php大力力 [052节] php数据库页面修改功能

    php大力力 [052节] php数据库页面修改功能

  3. SpringMVC学习--功能完善

    简介 在基本的项目中,无非就是基本的增删改查,前面我们已经实现了一个简单的查询功能,现在来实现增删改功能,来了解实际开发中的运用,以修改功能为例,因为修改功能基本覆盖了增加和删除的运用. 前面我们实现 ...

  4. ajax 实现修改功能

    这段时间在做项目,发现自己忘得好快呀,幸亏有博客园帮我记着呢,整理博客园简直不要太重要了哦  因为做的是一个内部管理系统,只用了一个主页面,所有的都不允许整个网页刷新,所以我们只能用ajax 来做,当 ...

  5. JAVAEE——BOS物流项目04:学习计划、datagrid、分页查询、批量删除、修改功能

    1 学习计划 1.datagrid使用方法(重要) n 将静态HTML渲染为datagrid样式 n 发送ajax请求获取json数据创建datagrid n 使用easyUI提供的API创建data ...

  6. 系统管理模块_岗位管理_改进_使用ModelDroven方案_套用美工写好的页面效果_添加功能与修改功能使用同一个页面

    改进_使用ModelDroven方案 @Controller @Scope("prototype") public class RoleAction extends ActionS ...

  7. 如何使Label有修改功能

    如何使Label有修改功能 之前制作一个项目时需要这样一个功能: 双击Label, 随后Label变为TextBox,用户修改后回车,TextBox变回Label 之前使用WPF做了一个,代码如下: ...

  8. Spring Boot2.0+中,自定义配置类扩展springMVC的功能

    在spring boot1.0+,我们可以使用WebMvcConfigurerAdapter来扩展springMVC的功能,其中自定义的拦截器并不会拦截静态资源(js.css等). @Configur ...

  9. 轻松搭建CAS 5.x系列(5)-增加密码找回和密码修改功能

    概述说明 CAS内置了密码找回和密码修改的功能: 密码找回功能是,系统会吧密码重置的连接通过邮件或短信方式发送给用户,用户点击链接后就可以重置密码,cas还支持预留密码重置的问题,只有回答对了,才可以 ...

随机推荐

  1. LightOj 1088 - Points in Segments (二分枚举)

    题目链接: http://www.lightoj.com/volume_showproblem.php?problem=1088 题目描述: 给出一个n位数升序排列的数列,然后q个查询,每个查询问指定 ...

  2. req.getParameter()无法获取参数(附前端json序列化)

    问题:前端用Ajax的post方式想servlet传递参数,servlet的getParameter()方法无法获取参数. 前端代码: $.ajax({ url: '/TestWeb/addBook' ...

  3. 129 Sum Root to Leaf Numbers 求根叶数字总和

    给定一个只包含 0-9 数字的二叉树,每个根到叶的路径可以代表一个数字.例如,从根到叶路径 1->2->3则代表数字 123.查找所有根到叶数字的总和.例如,    1   / \  2  ...

  4. Python读取文件行数不对

    对于一个大文件,读取每一个行然后处理,用readline()方法老是读不全,会读到一半就结束,也不报错: 总之处理的行数跟 wc -l 统计的不一样,调试了一下午,改用 with open('xxx. ...

  5. java学习第二章

  6. Coursera:一流大学免费在线课程平台

    https://www.coursera.org/ 微软联合创始人 Bill Gates 从公司退隐后,一直和妻子 Melinda 忙于公益事业.但离开 IT 圈并未改变他穿廉价衬衫和保持学习的习惯— ...

  7. AJPFX关于多线程概述及应用

    一.认识多任务.多进程.单线程.多线程要认识多线程就要从操作系统的原理说起. 以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情.比如你在copy东西的时候 ...

  8. iOS 音频视频制作

    --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...

  9. QTableWidget表头样式

    转载请注明出处:http://www.cnblogs.com/dachen408/p/7742680.html QTableView { background-color: rgba(255, 255 ...

  10. Mac OSX简单使用中会用到的

    选择操作系统(例如选择BootCamp分区的Windows):开机按住Option键直到磁盘图标出现后选择. 忘记本地账号密码:按着Command+R开机选择Recovered启动打开终端输入re ...