1.SpringMVC入门:表现层框架,spring的一部分

2.Spring处理流程:

3.要在web.xml里写好相关配置

    <!--配置DispatcherServlet-->
<servlet>
<servlet-name>shuoshuo-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--
配置SpringMVC 需要配置的文件
spring-dao.xml,spring-service.xml,spring-web.xml
Mybites -> spring -> springMvc
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-*.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>shuoshuo-dispatcher</servlet-name>
<!--默认匹配所有请求-->
<url-pattern>/</url-pattern>
</servlet-mapping> <!-- 这个是配置编码问题,以防中文出现问题-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

4.在web包里创建XXXController类,如下:

@Controller
@RequestMapping("/shuoshuo")

public class ShuoshuoController { @Autowired
private ShuoshuoService shuoshuoService; @RequestMapping(value = "/list" ,method= RequestMethod.GET)
public String list(Model model)
{
List<Shuoshuo> shuoshuoList = shuoshuoService.queryAllShuoshuo();
model.addAttribute("list",shuoshuoList);
return "list";
} @RequestMapping(value = "/postShuoshuo" ,method= RequestMethod.POST)
public ModelAndView postShuoshuo(String name,String text)
{
System.out.println(text); shuoshuoService.insertShuoShuo(name,text); List<Shuoshuo> shuoshuoList = shuoshuoService.queryAllShuoshuo(); ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("redirect:list");
modelAndView.addObject("list",shuoshuoList);
return modelAndView;
} }

5.如上,类上打上@Controller 。@RequestMapping("/shuoshuo")表示访问路径,这个类下的访问路径都是加shuoshuo

6.方法上的@RequestMapping("/list"),那么此时路径应该是localhost:8080/项目名/shuoshuo/list访问到这个方法

7.springmvc里数据和jsp页面是用Model和View搞定的

model.addAttribute("list",shuoshuoList);//设置数据

modelAndView.setViewName("redirect:list");//设置重定向jsp页面

return "list";//跳转到list.jsp

8.springmvc的方法参数,可以直接在方法参数里写HttpServletRequest,HttpServletResponse,HttpSession,ModelAndView,Model,View(springmvc默认支持的)如下这样:

/**
* 根据id查询商品,使用Model
*
* @param request
* @param model
* @return
*/
@RequestMapping("/itemEdit")
public String queryItemById(HttpServletRequest request, Model model) {
// 从request中获取请求参数
String strId = request.getParameter("id");
Integer id = Integer.valueOf(strId); // 根据id查询商品数据
Item item = this.itemService.queryItemById(id); // 把商品数据放在模型中
model.addAttribute("item", item);
return "itemEdit";
}

9.第8点讲的是几个默认的方法参数类,还可以绑定简单的数据类型(

整形:Integer、int

字符串:String

单精度:Float、float

双精度:Double、double

布尔型:Boolean、boolean

),如下:

请求url:

http://localhost:8080/xxx.action?id=2&status=false  //表单也和这个同理一样

处理器方法:

publicString editItem(Model model,Integer id,Boolean status) //名字一样即可

10.绑定普通VO或复合VO类(常见于表单)

VO代码:

class ContactInfo {
private String tel;
private String address; public String getTel() {
return tel;
} public void setTel(String tel) {
this.tel = tel;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} } public class User {
private String firstName;
private String lastName;
private ContactInfo contactInfo; public String getFirstName() {
return firstName;
} public void setFirstName(String firstName) {
this.firstName = firstName;
} public String getLastName() {
return lastName;
} public void setLastName(String lastName) {
this.lastName = lastName;
} public ContactInfo getContactInfo() {
return contactInfo;
} public void setContactInfo(ContactInfo contactInfo) {
this.contactInfo = contactInfo;
} }

Controller代码:

@RequestMapping("saysth.do")
public void test(User user) {
System.out.println(user.getFirstName());
System.out.println(user.getLastName());
System.out.println(user.getContactInfo().getTel());
System.out.println(user.getContactInfo().getAddress());
}

表单代码:

<form action="saysth.do" method="post">
<input name="firstName" value="张" /><br>
<input name="lastName" value="三" /><br>
<input name="contactInfo.tel" value="13809908909" /><br>
<input name="contactInfo.address" value="北京海淀" /><br>
<input type="submit" value="Save" />
</form>

非常简单 ,类里普通数据 只需将对象的属性名和input的name值一一匹配即可

复合类需要使用“复合类名(对象类型的属性).复合类属性名”来命名input的name。

11.自定义参数绑定(比如把JSP页面里的字符串日期转为 日期类,使用Converter接口,略)

12.绑定简单类型。@RequestParam

使用@RequestParam常用于处理简单类型的绑定。

value:参数名字,即入参的请求参数名字,如value=“itemId”表示请求的参数     区中的名字为itemId的参数的值将传入

required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报错
TTP Status 400 -Required Integer parameter 'XXXX' is not present
 
defaultValue:默认值,表示如果请求中没有同名参数时的默认值

定义如下:

@RequestMapping("/itemEdit")
public String queryItemById(@RequestParam(value = "itemId", required = true, defaultValue = "1") Integer id,
ModelMapmodelMap) {
// 根据id查询商品数据
Itemitem = this.itemService.queryItemById(id);
// 把商品数据放在模型中
modelMap.addAttribute("item", item);
return "itemEdit";
}

SpringMVC快速入门记录(一)的更多相关文章

  1. SpringMVC快速入门记录(二)

    一.数组参数绑定和List参数绑定 1.数组参数绑定 提交多个相同name的参数,保持name的名字和Controller方法参数的数组名称相同即可. 2.List参数绑定 List中存放对象,并将定 ...

  2. SpringMVC 快速入门

    SpringMVC 快速入门 SpringMVC 简介 SpringMVC是 Spring为展示层提供的基于Web MVC设计模式的请求驱动类型的轻量级Web框架,它的功能和Struts2一样.但比S ...

  3. springmvc快速入门(注解版本)

    1)springmvc快速入门(传统版) 步一:创建springmvc-day02这么一个web应用 步二:导入springioc,springweb和springmvc相关的jar包 ------- ...

  4. springmvc快速入门(XML版本)

    1)springmvc快速入门(传统版) 步一:创建springmvc-day01这么一个web应用 步二:导入springioc,springweb , springmvc相关的jar包 步三:在/ ...

  5. springMVC快速入门 共分为五步

    springMVC快速入门 共分为5步分别为: 1 导入依赖 ​​ 2 spring-mvc.xml 配置 ​ 3 web.xml配置 ​ 4 自定义一个核心控制类 ​ 5 页面配置 详细步骤以及代码 ...

  6. Cordova 快速入门记录

    本篇文章由:http://xinpure.com/cordova-quick-start-recording/ 记一笔 Cordova 官网入门文档 Get Started Fast,言简意该.通俗易 ...

  7. SpringMVC快速入门

    导入开发包 前6个是Spring的核心功能包[IOC],第7个是关于web的包,第8个是SpringMVC包 org.springframework.context-3.0.5.RELEASE.jar ...

  8. SpringMvc快速入门之使用篇

    文章是为了结合工作需求来介绍springmvc,本文章只是切合实际的开发的场景对springmvc进行快速的入门介绍. 本篇文章不会对原理进行讲解.因为个人觉得有些对于新技术方面可以分为一下几个层次. ...

  9. 01.SpringMVC快速入门

    1.导入jar包 2.在web.xml中配置前端控制器 <!-- spring前端控制器 --> <servlet> <servlet-name>springmvc ...

随机推荐

  1. virtualbox下给centos7固定ip

    在virtualbox桥接连接模式下,固定虚拟机的ip. 修改/etc/sysconfig/network-scripts/ifcfg-ens33文件 添加如下信息: 保存 重启网卡: sudo se ...

  2. Java的异常:Error与Exception

    一. 异常机制的概述      异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 程序错误分 ...

  3. Java 创建/识别条形码、二维码

    条形码(Barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常用于标示物品的生产国.制造厂家.商品名称.生产日期.图书分类号.邮件起止地点.类别.日期等 ...

  4. maven引入jar包冲突问题

    1.原因 使用maven过程中,经常会遇到jar包重复加载或者jar包冲突的问题,但是有些jar包是由于maven加载了其他jar包自动引入的,并非自己主动添加的,导致和自己添加的jar包版本冲突 举 ...

  5. android中shape 的使用

    android 开发中 对于 shape 和 selector的使用,一直都不是很熟练, 记录一下.便于以后参考. 举个项目中例子图 对于上面的2个radiobutton ,背景我们可以让美工做一个. ...

  6. flink有什么优势值得大家这么热衷

    flink 通过实现了 Google Dataflow 流式计算模型实现了高吞吐.低延迟.高性能兼具实时流式计算框架. 同时 flink 支持高度容错的状态管理,防止状态在计算过程中因为系统异常而丢失 ...

  7. PLC与上位机的socket通讯——上位机C#程序(二)

    C#的网口通信 一.命令行 客户端程序:using System;using System.Collections.Generic;using System.Linq;using System.Tex ...

  8. MySQL 8.0主从(Master-Slave)配置

    版权声明:转载请注明出处,谢谢配合. https://blog.csdn.net/zyhlwzy/article/details/80569422 MySQL 主从复制的方式有多种,本文主要演示基于基 ...

  9. ActiveMQ JMX使用

    一.说明 ActiveMQ使用过程中,可以使用自带的控制台进行相关的操作以及查看,但是当队列数相当多的时候,在查询以及整体的监控上,就可能相当的不便.所以可通过JMX的方式,进行MQ中队列相关指标的以 ...

  10. Ubuntu+docker+gitlab安装和使用

    以前自己写的代码都是在本地,因为都是自己一个人维护,现在交给团队维护了,所以想着搭建一个gitlab 1,拉镜像 安装非常简单 docker search gitlab  搜索镜像 docker pu ...