`

Spring MVC之SimpleFormController的简单使用

 
阅读更多

很明显,SimpleFormController是处理表单提交比较好的一种控制器。下面就一个小例子对SimpleFormController的用法做一个总结。

首先提纲挈领,我们的例子是做一个新闻提交模块。

如下图所示:

在输入http://localhost:8080/javalearn1.0/addNews.html后,即打开此页面,从数据库中读出新闻类别并在select框中显示。而用户填完新闻标题和新闻内容后,即保存至数据库,并刷新页面,在提交新闻按钮下方显示:保存数据成功。

第一步的显示对应一个ShowNewsClassController,而第二步保存对应AddNewsController。

首先是javalearn-servlet.xml的配置:

  1. <beanid="simpleUrlHandlerMapping"class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  2. <propertyname="mappings">
  3. <props>
  4. <propkey="/addNews.html">showNewsClassController</prop>
  5. <propkey="/addNews1.html">addNewsController</prop>
  6. </props>
  7. </property>
  8. </bean>

对应的ShowNewsClassController为:

  1. packagecom.javalearn.control;
  2. importjavax.servlet.http.HttpServletRequest;
  3. importjavax.servlet.http.HttpServletResponse;
  4. importorg.springframework.web.servlet.ModelAndView;
  5. importorg.springframework.web.servlet.mvc.AbstractController;
  6. importcom.javalearn.service.*;
  7. importjava.util.*;
  8. importcom.javalearn.model.*;
  9. publicclassShowNewsClassControllerextendsAbstractController{
  10. privateJavalearnServicejavalearnService;
  11. publicJavalearnServicegetJavalearnService(){
  12. returnjavalearnService;
  13. }
  14. publicvoidsetJavalearnService(JavalearnServicejavalearnService){
  15. this.javalearnService=javalearnService;
  16. }
  17. @Override
  18. protectedModelAndViewhandleRequestInternal(HttpServletRequestarg0,
  19. HttpServletResponsearg1)throwsException{
  20. //TODOAuto-generatedmethodstub
  21. List<Tbclass>list=this.javalearnService.readNewsClass();
  22. Map<String,List<Tbclass>>map=newHashMap<String,List<Tbclass>>();
  23. map.put("myclass",list);
  24. returnnewModelAndView("addNews","map",map);
  25. }
  26. }

这个类就是在页面加载时,读取新闻类别并进行显示。

对应的addNews.jsp页面为:

  1. <%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <htmlxmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
  7. <title>欢迎访问JavalearnJAVA学习网</title>
  8. </head>
  9. <body>
  10. <formaction="addNews1.html"method="post">
  11. <p>新闻类别:
  12. <selectname="myclass">
  13. <c:forEachitems="${map.myclass}"var="Parameter">
  14. <optionvalue="${Parameter.id}">${Parameter.classname}</option>
  15. </c:forEach>
  16. </select></p>
  17. <p>新闻标题:<inputname="title"type="text"/></p>
  18. <p>新闻内容:<textareaname="mycontent"rows="10"cols="100"></textarea></p>
  19. <p><inputtype="submit"value="提交新闻"/></p>
  20. </form>
  21. <fontcolor="red">${map.message}</font>
  22. </body>
  23. </html>

即,点击了提交按钮后,跳转至addNews1.html。而由在javalearn-servlet.xml中配置可知,此url交由AddNewsController进行处理。AddNewsController继承至SimpleFormController,onSubmit方法处理提交事件。且form中的各个控件的name对应AddNewsController的CommandClass的属性。类似于Struts2或JavaBean的用法。

  1. packagecom.javalearn.control;
  2. importorg.springframework.validation.BindException;
  3. importorg.springframework.web.servlet.ModelAndView;
  4. importorg.springframework.web.servlet.mvc.SimpleFormController;
  5. importcom.javalearn.model.Tbclass;
  6. importcom.javalearn.model.Tbnews;
  7. importcom.javalearn.service.*;
  8. importjava.util.*;
  9. /*
  10. *author:TammyPi
  11. *function:添加新闻的Controller
  12. */
  13. publicclassAddNewsControllerextendsSimpleFormController{
  14. privateJavalearnServicejavalearnService;
  15. publicAddNewsController()
  16. {
  17. this.setCommandClass(Tbnews.class);
  18. this.setCommandName("Tbnews");
  19. }
  20. publicJavalearnServicegetJavalearnService(){
  21. returnjavalearnService;
  22. }
  23. publicvoidsetJavalearnService(JavalearnServicejavalearnService){
  24. this.javalearnService=javalearnService;
  25. }
  26. protectedModelAndViewonSubmit(Objectcommand,BindExceptionbindException)throwsException
  27. {
  28. Tbnewstbnews=(Tbnews)command;
  29. Mapmap=newHashMap<String,String>();
  30. List<Tbclass>list=this.javalearnService.readNewsClass();
  31. if(this.javalearnService.saveNews(tbnews))
  32. {
  33. map.put("message","保存数据成功!");
  34. }
  35. else
  36. {
  37. map.put("message","保存数据失败!");
  38. }
  39. map.put("myclass",list);
  40. returnnewModelAndView(this.getSuccessView(),"map",map);
  41. }
  42. }
分享到:
评论

相关推荐

    Spring MVC控制器之SimpleFormController使用

    NULL 博文链接:https://huihai.iteye.com/blog/1967697

    Spring MVC 例子

    Spring MVC例子 有SimpleFormController ,MultiationController等控制器的应用介绍.算是比较完整的例子大家看看吧。

    Spring MVC与JAX-RS比较与分析

    去几年,REST逐渐成为影响Web框架、Web协议与Web应用设计的重要概念...更进一步,如果你手头有一个Spring MVC应用,使用了控制类继承(SimpleFormController等),你可能还意识不到现在的Spring MVC对REST广泛的支持。

    一个最简单的SimpleFormController使用

    NULL 博文链接:https://mgz-99-163-com.iteye.com/blog/690417

    开源框架 Spring Gossip

    Spring MVC 入门 从一个最简单的 Spring Web 应用程式,来看看 Spring MVC 框架的架构与 API 组成元素。 第一个 Spring MVC 程式 WebApplicationContext Handler Mapping Handler ...

    CryptoPresto:基于Spring MVC的Web平台,用于加密交易和转移

    一个基于Spring MVC的网络平台,用于加密货币交易和转移 框架:Spring mvc 5.2.3.RELEASE。 查看:JSP。 数据持久性:Hibernate5.4.10.Final。 数据库:MySQL 8.0.21 Java:1.8。 用户表单提交:...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path...

    springMVC3学习(六)--SimpleFormController(源码)

    springMVC3学习(六)--SimpleFormController(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/25988733

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path...

    Web框架-spring

    Spring的web框架是围绕...你可以通过实现这个接口来生成自己的控制器(也可以称之为处理器),但是从Spring提供的一系列控制器继承会更省事,比如AbstractController、AbstractCommandController和SimpleFormController

    spring 2.0表单绑定实例

    自己写的spring表单绑定的小例子,分别使用SimpleFormController,MultiActionController,spring的form tag和validator。 还在MultiActionController里面实现了表单的绑定

    SPRING API 2.0.CHM

    All Classes AbstractAdvisorAutoProxyCreator AbstractApplicationContext AbstractApplicationEventMulticaster AbstractAspectJAdvice AbstractAspectJAdvisorFactory AbstractAspectJAdvisorFactory....

    legacy-app:使用 Spring 演讲改进您的遗留应用程序的代码

    遗留应用程序使用 Spring 谈话改进您的遗留应用程序的代码。 有几个分支显示了从 Legacy Monolitic 应用程序迁移到结构良好(或更好)的应用程序,这些应用程序可以分解为不同的部分。显示从 Spring 2.0.8 升级到 ...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path...

    Spring-Validator-开源

    Spring-Validator软件包提供了一种自动生成JavaScript客户端验证代码的简单方法,并提供了SimpleFormController的通用验证器

Global site tag (gtag.js) - Google Analytics