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. 爬虫中动态的POST参数

    爬虫的过程中,有的网站提交POST数据时候每次都会带上不懂POST参数,要想爬到数据首先的知道怎么构造这些动态的参数. 1.分析提交POST数据的最原始网页,分析原始网页的源代码,查找里面是否包含有你 ...

  2. hashlib加密模块详解

    1.hash是把任意长度的消息压缩到某一固定长度的数值的函数. hash主要用于安全加密,把一些不同长度的信息转化成杂乱的128位编码里,叫做hash值. hash就是把内容和内容地址之间找到一种映射 ...

  3. cordova安装方法

    安装cordova之前需要先安装node.js和npm 然后在命令行运行:npm install -g cordova即可安装到最新版本的cordova 如果要安装指定版本,命令为:npm insta ...

  4. Hibernate懒加载深入分析

    Hibernate懒加载深入分析 懒加载可以提高性能吗?  不可以简单的说"能",因为Hibernate的关系映射拖累了SQL的性能,所以想出懒加载来弥补.只是弥补而以,不会超越. ...

  5. Elasticsearch 插入地理索引文档一直为空

    今天在获取插入索引数据的时候,一直提示插入不成功,尝试了很多方法,原来是因为在插入的时候应该先 插入Latitude后插入longitude修改后的代码如下 public boolean insert ...

  6. liunx 修改IP地址

    1.安装centos系统,这里就不详细说明了. 2.进入到 vi /etc/sysconfig/network-scripts/ifcfg-eth0      后面的名称有些可能不同 其中,有些可能没 ...

  7. Python3 OpenCV3 图像处理基础

    开发环境搭建 本人使用的是Ubuntu 16.04LTS. 1.安装Python3 ## 其实 Ubuntu 16.04 系统自带了 Python 3.5.2,因此不需要再安装了?但是需要安装一些开发 ...

  8. uva12265 Selling Land

    见紫书.(c,h)的更新策略://前面的高度为0了,直接插入因为ans==-c+h,c大,h还小,那么肯定不是最优左上角,更新新加入列的列//新的一列高度最小,就删掉了其他的,只留这个高度从上到下,从 ...

  9. linux部署全流程(未完)

    一.环境搭建 1.jdk 2.tomcat 3.nginx 4.redis 推荐工具:winSCP(用来传输文件).SecureCRT(用来执行命令) 1.jdk 下载地址:https://www.o ...

  10. Asp.Net Core 入门(二)——Startup.cs做了什么

    上篇介绍了Program.cs中Main做了什么,这篇我们来讨论下Startup.cs它又做了什么呢? 我们新建一个Asp.Net Core Mvc项目,先来开一下Startup的代码 public ...