SpringMVC修改功能
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
1 package net.roseindia.controller; 2 import net.roseindia.model.Article; 3 import net.roseindia.service.ArticleService; 4 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.stereotype.Controller; 7 import org.springframework.ui.Model; 8 import org.springframework.validation.BindingResult; 9 import org.springframework.web.bind.annotation.ModelAttribute; 10 import org.springframework.web.bind.annotation.PathVariable; 11 import org.springframework.web.bind.annotation.RequestMapping; 12 import org.springframework.web.bind.annotation.RequestMethod; 13 import org.springframework.web.bind.annotation.RequestParam; 14 import org.springframework.web.servlet.ModelAndView; 15 16 17 @Controller 18 @RequestMapping("/articles") 19 public class DeleteController { 20 @Autowired 21 private ArticleService articleService; 22 23 @RequestMapping(value="/delete") 24 public String deleteService(@RequestParam("ID") final Integer ids) { 25 System.out.println("delete"+"ID="+ids); 26 articleService.deleteService(ids); 27 28 return "redirect:/articles.html"; 29 30 } 31 @RequestMapping(value="/edit") 32 public ModelAndView editSerivie(@RequestParam("ID") final Integer ids, 33 @ModelAttribute("article") Article article,BindingResult result,final Model model){ 34 System.out.println("edit ID"+ids); 35 model.addAttribute("articleId",ids); 36 return new ModelAndView("editArticle"); 37 38 39 } 40 /** 41 @RequestMapping(value = "/add", method = RequestMethod.GET) 42 public ModelAndView addArticle(@ModelAttribute("article") Article article, 43 BindingResult result) { 44 return new ModelAndView("addArticle"); 45 }**/ 46 }
把ids给articleId
articleId作为模型属性能够传给jsp页面
editArticle.jsp
1 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 3 <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 4 5 <html> 6 7 <head><title>Edit Article</title></head> 8 9 <body> 10 11 <h1>Edit Article</h1> 12 13 <c:url var="viewArticlesUrl" value="/articles.html" /> 14 15 <a href="${viewArticlesUrl}">Show All Articles</a> 16 17 <br /> 18 19 <br /> 20 21 <c:url var="editSaveArticleUrl" value="/articles/editSave.html?ID=${articleId}" /> 22 23 <form:form modelAttribute="article" method="POST" action="${editSaveArticleUrl}"> 24 25 26 <c:out value="Article ID:"></c:out> 27 <c:out value="${articleId}"/> 28 <br /> 29 <br /> 30 31 <form:label path="articleName">Article Name:</form:label> 32 33 <form:input path="articleName" /> 34 35 <br /> 36 37 <form:label path="articleDesc">Article Desc:</form:label> 38 39 <form:textarea path="articleDesc" /> 40 41 <br /> 42 43 <input type="submit" value="Save Article" /> 44 45 </form:form> 46 47 </body> 48 49 </html>
点击保存后被ArticleController捕获,并做处理,在Dao层进行update数据!做完处理后显示在article.html页面
ArticleController.java
1 package net.roseindia.controller; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 import net.roseindia.model.Article; 7 import net.roseindia.service.ArticleService; 8 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.stereotype.Controller; 10 import org.springframework.validation.BindingResult; 11 import org.springframework.web.bind.annotation.ModelAttribute; 12 import org.springframework.web.bind.annotation.PathVariable; 13 import org.springframework.web.bind.annotation.RequestMapping; 14 import org.springframework.web.bind.annotation.RequestMethod; 15 import org.springframework.web.bind.annotation.RequestParam; 16 import org.springframework.web.servlet.ModelAndView; 17 18 @Controller 19 @RequestMapping("/articles") 20 public class ArticleController { 21 22 @Autowired 23 private ArticleService articleService; 24 25 @RequestMapping(value = "/save", method = RequestMethod.POST) 26 public ModelAndView saveArticle(@ModelAttribute(" article") Article article, 27 BindingResult result) { 28 System.out.println("save's articleName"+article.getArticleName()); 29 articleService.addArticle(article); 30 return new ModelAndView("redirect:/articles.html"); 31 } 32 33 @RequestMapping(value = "/editSave", method = RequestMethod.POST) 34 public ModelAndView editSaveArticle(@RequestParam("ID") final Integer ids, 35 @ModelAttribute(" article") Article article, 36 BindingResult result) { 37 System.out.println("editSaveController--id"+ids); 38 System.out.println("editSave's articleName"+article.getArticleName()); 39 articleService.updateArticle(article,ids); 40 return new ModelAndView("redirect:/articles.html"); 41 } 42 43 /**@RequestMapping(value="/delete",method = RequestMethod.POST) 44 public String deleteService(@RequestParam("ID") final Integer ids) { 45 System.out.println("hello"+"ID="+ids); 46 articleService.deleteService(ids); 47 return "redirect:/articles.html"; 48 } 49 **/ 50 51 52 53 @RequestMapping(method = RequestMethod.GET) 54 public ModelAndView listArticles() { 55 Map<String, Object> model = new HashMap<String, Object>(); 56 model.put("articles", articleService.listArticles()); 57 58 return new ModelAndView("articlesList", model); 59 } 60 61 @RequestMapping(value = "/add", method = RequestMethod.GET) 62 public ModelAndView addArticle(@ModelAttribute("article") Article article, 63 BindingResult result) { 64 return new ModelAndView("addArticle"); 65 } 66 67 68 69 }
ArticleDaoImpl.java
在Dao层进行update数据!做完处理后显示在article.html页面
1 package net.roseindia.dao; 2 3 import java.util.Date; 4 import java.util.List; 5 6 import net.roseindia.model.Article; 7 8 import org.hibernate.Session; 9 import org.hibernate.SessionFactory; 10 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.stereotype.Repository; 12 13 @Repository("articleDao") 14 public class ArticleDaoImpl implements ArticleDao { 15 16 @Autowired 17 private SessionFactory sessionFactory; 18 19 // To Save the article detail 20 public void saveArticle(Article article) { 21 article.setAddedDate(new Date()); 22 sessionFactory.getCurrentSession().saveOrUpdate(article); 23 } 24 public void deleteArticle(Integer articleId){ 25 System.out.println("Dao-->"+articleId); 26 Session session=sessionFactory.openSession(); 27 Article article = (Article) session.get( Article.class,articleId); 28 session.beginTransaction(); 29 if (null != article) { 30 session.delete(article); 31 } 32 session.getTransaction().commit(); 33 session.close(); 34 35 } 36 public void updateArticle(Article article,Integer ids){ 37 System.out.println("upadateDao--->"+ids); 38 System.out.println("upadateDao--->"+article.getArticleName()); 39 Session session=sessionFactory.openSession(); 40 session.beginTransaction(); 41 Article newArticle=(Article)session.get(Article.class, ids); 42 newArticle.setArticleName(article.getArticleName()); 43 newArticle.setArticleDesc(article.getArticleDesc()); 44 session.update(newArticle); 45 session.getTransaction().commit(); 46 session.clear(); 47 48 } 49 // To get list of all articles 50 @SuppressWarnings("unchecked") 51 public List<Article> listArticles() { 52 return (List<Article>) sessionFactory.getCurrentSession().createCriteria(Article.class).list(); 53 } 54 }
自信与努力 用心坚持