package cn.itcast.converter;

 import org.springframework.core.convert.converter.Converter;

 import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class DateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}

DateConverter

 package cn.itcast.domain;

 public class User {
private String name;
private int age; public User(){} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}

User

 package cn.itcast.vo;

 import cn.itcast.domain.User;

 public class VO {
private User[] userList; public VO(){} public User[] getUserList() {
return userList;
} public void setUserList(User[] userList) {
this.userList = userList;
}
}

VO

 package cn.itcast.web.controller;

 import cn.itcast.domain.User;
import cn.itcast.vo.VO;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.support.BindingAwareModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List; @Controller
//@Component
public class UserController {
/*
响应处理,跳转
*/
@RequestMapping("/quick1")
public String quick1(){
//视图字符串,可以使用绝对路径和相对路径
return "/mvc.jsp";
} @RequestMapping("/quick2")
public ModelAndView quick2(){
ModelAndView modelAndView = new ModelAndView(); //ViewName即视图字符串
modelAndView.setViewName("/mvc.jsp"); //SpringMVC会自动将ModelAndView中存入的数据,存入request域
modelAndView.addObject("name", "刘备"); return modelAndView;
} @RequestMapping("/quick3")
//由SpringMVC创建ModelAndView
public ModelAndView quick3(ModelAndView modelAndView){
//ViewName即视图字符串
modelAndView.setViewName("/mvc.jsp"); //SpringMVC会自动将ModelAndView中存入的数据,存入request域
modelAndView.addObject("name", "孙权"); return modelAndView;
} //使用Model+视图字符串,则Model必须由SpringMVC创建。
@RequestMapping("/quick4")
public String quick4(Model model){
//SpringMVC会自动将ModelAndView中存入的数据,存入request域
model.addAttribute("name", "曹操");
return "/mvc.jsp";
} //错误示例: 返回视图字符串,自己创建Model的话无法交给SpringMVC。
@RequestMapping("/quick5")
public String quick5(){
Model model = new BindingAwareModelMap();
//SpringMVC会自动将ModelAndView中存入的数据,存入request域
model.addAttribute("name", "小乔");
return "/mvc.jsp";
} /*
直接响应数据
*/
@RequestMapping("/quick6")
@ResponseBody
public String quick6(){
return "你好 mvc";//?? mvc
} @RequestMapping("/quick7")
@ResponseBody
public User quick7(){
User user = new User();
user.setName("刘备");
user.setAge(20); return user;
} @RequestMapping("/quick8")
@ResponseBody
public List<User> quick8(){
User user = new User();
user.setName("刘备");
user.setAge(20); User user2 = new User();
user2.setName("孙权");
user2.setAge(20); List<User> userList = new ArrayList<>();
userList.add(user);
userList.add(user2); return userList;
} @RequestMapping("/quick9")
public String quick9(){
return "mvc";
} /*
请求处理
*/
@RequestMapping("/quick10")
@ResponseBody
public void quick10(String name, Integer age){
System.out.println(name + ":" + age);
} @RequestMapping("/quick11")
@ResponseBody
public void quick11(User user){
System.out.println(user);
} @RequestMapping("/quick12")
@ResponseBody
public void quick12(String[] strs){
System.out.println(Arrays.toString(strs));
} @RequestMapping("/quick13")
@ResponseBody
public void quick13(VO vo){
System.out.println(Arrays.toString(vo.getUserList()));
} /* @RequestMapping("/quick14")
@ResponseBody
public void quick14(@RequestBody List<User> userList){
System.out.println(userList);
}*/ @RequestMapping("/quick14")
@ResponseBody
public void quick14(@RequestBody User[] users){
System.out.println(Arrays.toString(users));
} @RequestMapping("/quick15")
@ResponseBody
public void quick15(@RequestParam("name") String username){
System.out.println(username);
} @RequestMapping("/quick16")
@ResponseBody
public void quick16(Date date){
System.out.println(date);
}
}

UserController

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
"> <!--组件扫描-->
<context:component-scan base-package="cn.itcast.web.controller"></context:component-scan> <!--启用jackson-->
<!--<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
</list>
</property>
</bean>--> <!--设置视图字符串前后缀-->
<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>--> <!--当SpringMVC没有匹配成功使用的Servlet处理器-->
<!--<mvc:default-servlet-handler></mvc:default-servlet-handler>--> <mvc:resources mapping="/js/**" location="/js/"></mvc:resources> <!--注入自定义类型转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="cn.itcast.converter.DateConverter"></bean>
</list>
</property>
</bean> <!--mvc注解驱动,默认启用jackson,使用类型转换服务-->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven> </beans>

spring-mvc.xml

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>cn.itcast</groupId>
<artifactId>spring_mvc_day2</artifactId>
<version>1.0-SNAPSHOT</version> <dependencies>
<!--springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency> <!--jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
</dependencies> </project>

pom.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"> <!--SpringMVC核心控制器-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>

web.xml

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>你好 mvc ${name}</h1>
</body>
</html>

mvc.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
<script src="/js/jquery-3.3.1.js"></script>
<script>
$(function () {
var users = new Array();
users.push({"name": "刘备"});
users.push({"name": "孙权", age: 20});
//发送异步请求,携带对象数据
$.ajax({
type: "POST",
url: "/quick14",
data: JSON.stringify(users),
contentType: "application/json;charset=utf-8"
});
});
</script>
</head>
<body> </body>
</html>

ajax.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/quick13" method="post">
<input type="text" name="userList[0].name">
<input type="text" name="userList[0].age">
<input type="text" name="userList[1].name">
<input type="text" name="userList[1].age">
<input type="submit" value="提交">
</form>
</body>
</html>

array.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/quick15" method="post">
<input type="text" name="name">
<input type="submit" name="提交">
</form>
</body>
</html>

encode.jsp

SpringMVC入门 bug集锦X2的更多相关文章

  1. SpringMVC入门 bug集锦X3和SSM原始整合

  2. MyBatis入门Bug集锦X1

  3. 【Spring】SpringMVC入门示例讲解

    目录结构: // contents structure [-] SpringMVC是什么 Spring MVC的设计原理 SpringMVC入门示例 1,复制Jar包 2,Web.xml文件 3,My ...

  4. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...

  5. SpringMVC入门第二天

    SpringMVC第二天 1.   回顾 1.Springmvc介绍? Springmvc是Spring公司 2.Springmvc入门程序 第一步:Web工程 第二步:导Jar包 第三步:web.x ...

  6. 3.2.1 SpringMVC入门

    一. SpringMVC入门 1. MVC介绍 MVC全名 是Model View Controller, 是模型(model) - 视图(view) - 控制器(controller) 的缩写, 它 ...

  7. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  8. SpringMVC入门学习(一)

    SpringMVC入门学习(一) ssm框架 spring  SpringMVC是一个Java WEB框架,现在我们知道Spring了,那么,何为MVC呢? MVC是一种设计模式,其分为3个方面 mo ...

  9. springMVC入门(一)

    1.   SpringMVC入门 1.1SpringMVC是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出 ...

随机推荐

  1. 20145239 《Java程序设计》实验三 实验报告

    详见我的parter20145224的博客:http://www.cnblogs.com/20145224kevs/p/5428892.html 感想:这次的实验看似容易,但很多点都需要注意,比如开源 ...

  2. 从mediaserver入手快速理解binder机制(最简单理解binder)【转】

    本文转载自;https://blog.csdn.net/u010164190/article/details/53015194 Android的binder机制提供一种进程间通信的方法,使一个进程可以 ...

  3. C++ 结构体多元素sort排序调用时的写法

    //总结一下,结构体数据排序的快速写法 //以后在遇到需要写的时候,不要迟疑快速写完 struct node { int u, v, w; }a[10000]; //假设该结构体有3个元素 //现在仅 ...

  4. RQNOJ 329 刘翔!加油!:01背包

    题目链接:https://www.rqnoj.cn/problem/329 题意: 刘翔有n封信,每封信都有自己的欣赏价值value[i].消耗时间time[i].消耗体力h[i].和得到的鼓舞w[i ...

  5. myBatis 如何接受 返回count(*),sum()得到的int值

    <select id="selectRemainder" resultType="java.lang.Integer"> SELECT SUM(aw ...

  6. Go丨语言对MySQL数据库的增、删、改、查操作

    1.建立数据库名为: go_test_db 2.建表名为:userinfo 字段: uid int username varchar language varchar created varchar ...

  7. linux 进程学习笔记-共享内存

    如果能划定一块物理内存,让多个进程都能将该内存映射到其自身虚拟内存空间的话,那么进程可以通过向这块内存空间读写数据而达到通信的目的.另外,和消息队列不同的是,共享的内存在用户空间而不是核空间,那么就不 ...

  8. <opengl>使用glu绘制二次曲面

    绘制二次曲面通常要以下四步:   1.首先我们创建一个二次方程状态对象 GLUquadricObj *m_pObj;    //保存绘图模式.法线模式.法线朝向.纹理等信息 //创建二次方程状态对象 ...

  9. HDU4080Stammering Aliens(后缀数组+二分)

    However, all efforts to decode their messages have failed so far because, as luck would have it, the ...

  10. Python 2.7获取网站源代码的几种方式_20160924

    #coding:utf-8 import urllib2,cookielib if __name__ == '__main__': root_url='https://www.baidu.com/' ...