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. 把windows下的压缩包放到Linux目录下去

    今天在自学redis时出现了问题,因为楼主linux也是空白纸,前几天安装了Linux后就只会基本的命令,其他的一概不通啊,所以当redis要在Linux中用时就傻眼了,索性就在windows中下载了 ...

  2. android 之下拉刷新

    一.概述 Android 下拉刷新几乎是每个应用都必带的功能, 并且现在下拉刷新第三方库也越来越多了,很方便就能实现该功能, 下面我介绍一下 自己常用的几个方法. 二.例子 第一种方式:就是集成Lis ...

  3. 【第十一篇】这一篇来说说MVC+EF+easyui datagrid的查询功能

    老规矩 直接上代码 <form class="form-horizontal"> <div class="box-body"> < ...

  4. 服务器扩容SAN存储

    串行登陆10.10.10.1/2/3/4 1.备份系统信息 mkdir -p /bakinfo df -h > /bakinfo/df.txt_`date +%Y%m%d%H%M%S` ps - ...

  5. Net基础篇_学习笔记_第十天_方法_方法的调用问题

    在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者,管Test()函数称之为被调用者.如果被调用者想要得到调用者的值:1).传递参数.2).使用静态字段来模拟全局变量.如果 ...

  6. Java开发者薪资最低?程序员只能干到30岁?国外真的没有996?Intellij真的比Eclipse受欢迎?

    Stack Overflow作为全球最大的程序设计领域的问答网站,每年都会出据一份开发者调查报告.近日,Stack Overflow公布了其第9次年度开发者调查报告(https://insights. ...

  7. [AWS] 01 - What is Amazon EMR

    [DE] ML on Big data: MLlib 关于 Amazon EMR 发布版本 利用 Amazon EMR 分析大数据 Amazon Athena 是一种交互式查询服务,让您能够轻松使用标 ...

  8. Docker 01 - CentOS 7 中安装 Docker 的详细步骤

    目录 1 初识 Docker 1.1 Docker 原理简介 1.2 Docker 核心概念 2 安装 Docker 2.1 查看系统内核版本 2.2 更新 yum 包 2.3 安装软件包 2.4 向 ...

  9. jquery的api以及用法总结-数据/操作/事件

    数据 .data() 在匹配元素上存储任意相关数据或返回匹配的元素集合中的第一个元素的给定名称的数据存储的值 .data(obj) 一个用于更新数据的键/值对 .data()方法允许我们再dom元素上 ...

  10. Guava的常用方法示例

    Guava Maven Dependency <dependency> <groupId>com.google.guava</groupId> <artifa ...