SpringMVC学习日志二

一、回顾

  1.MVC流程

  

  2.SpringMVC流程

  

二、接收的参数为日期Date时

  1.在相应的controller页追加

  @InitBinder
    public void initBinder(ServletRequestDataBinder binder){
        //只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型
        binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),
                true));
    }

  2.在实体类中添加

    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date birthday;

三、controller进行数据保存

  1.数据保存到request作用域的方式.

    1. 使用ModelAndView,那么该方法的返回类型必须是ModelAndView
    2. 使用Model, 方法的返回值还是字符串类型。
    3. 使用Map.方法的返回值还是字符串类型。
    4. 原始的HttpServletRequest对象保存

  2 数据保存到session作用域的方式.

    1. 使用原始的HttpSession保存。
    2. 使用注解@SessionAttributes(name={key1,key2})

四、静态资源的映射关系

  1.静态资源可以正常显示

  <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springMVC-annotation.xml</param-value>
        </init-param>
        <!-- 容器在启动时加载springmvc的配置文件。访问时加载配置文件 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map all requests to the DispatcherServlet for handling -->
    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

  2.需要在springmvc配置文件中添加释放静态资源

  <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springMVC-annotation.xml</param-value>
        </init-param>
        <!-- 容器在启动时加载springmvc的配置文件。访问时加载配置文件 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map all requests to the DispatcherServlet for handling -->
    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- 释放静态资源 -->
    <mvc:default-servlet-handler/>

五、SpringMVC完成ajax功能

  1.加入jackson的jar包. springmvc。

  2.在响应的方法上加上@ResponseBody :把java对象转化为json对象。方法的返回值可以是对象集合字符串。

package com.zhiyou100.klb.annotation;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.zhiyou100.klb.bean.Users;

@Controller //等价于<bean class="com.zhiyou100.klb.annotation.MyController" />
@RequestMapping("ajax")
public class AjaxController {

    @RequestMapping("Ajax1")
    @ResponseBody //1.把hello作为内容响应给客户
    public String ajax1(String name) {
        System.out.println(name);
        return "你好"; //把这个内容作为内容返回给回调函数    out.print()
    }

    @RequestMapping("Ajax2")
    @ResponseBody //1.把hello作为内容响应给客户
    public Users ajax2(String name) {
        Users user = new Users("张三","110",15,"mmm","nanjin","151");
        return user; //把这个内容作为内容返回给回调函数    out.print()
    }

    @RequestMapping("Ajax3")
    @ResponseBody //1.把hello作为内容响应给客户
    public List<Users> ajax3(String name) {
        Users user1 = new Users("张三","110",15,"mmm","nanjin","151");
        Users user2 = new Users("李四","110",15,"mmm","nanjin","151");
        Users user3 = new Users("王五","110",15,"mmm","nanjin","151");
        List<Users> list = new ArrayList<>();
        list.add(user1);
        list.add(user2);
        list.add(user3);
        System.out.println(name);
        return list; //把这个内容作为内容返回给回调函数    out.print()
    }

}

  3.如果ajax返回的为字符串,那么就会出现乱码。解决方法主要有两种

    1.在controller文件中进行设置

@RequestMapping(value="ajax",produces = "text/html;charset=UTF-8")

    2.在springmvc中进行设置

  <!-- 开启注解驱动,设置编码 -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg index="0" value="utf-8"></constructor-arg>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

原文地址:https://www.cnblogs.com/kklb/p/11455855.html

时间: 2024-10-29 00:26:07

SpringMVC学习日志二的相关文章

SpringMVC学习(十二)——SpringMVC中的拦截器

SpringMVC学习(十二)--SpringMVC中的拦截器 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下SpringMVC中拦截器是如何定义的,以及测试拦截器的执行情况和使用方法. SpringMVC中拦截器的定义和配置 SpringMVC中拦截器的定义 在SpringMVC中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供的三个方法,如下: public class Inter

springMVC学习笔记(二)-----注解和非注解入门小程序

最近一直在做一个电商的项目,周末加班,忙的都没有时间更新博客了.终于在上周五上线了,可以轻松几天了.闲话不扯淡了,继续谈谈springMvc的学习. 现在,用到SpringMvc的大部分使用全注解配置,但全注解配置也是由非注解发张而来的.所以,今天就谈谈springMvc最基础的注解和非注解的配置以及开发模式. 一:基础环境准备 1.功能需求:一个简单的商品列表查询 2.开发环境:eclipse,java1.7,springmvc版本:3.2 3.springMvc所需jar包(一定包括spri

SpringMVC学习(二)

SpringMVC入门(注解方式) 需求 实现商品查询列表功能. 第一步:创建Web项目 springmvc02 第二步:导入jar包 第三步:配置前端控制器 在WEB-INF\web.xml中配置前端控制器 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=&qu

MySQL学习日志(二)

# DML 事务 隔离级别 存储引擎对比 ##DML     insert into 第一种: insert into tb_name [(col1,col2,....)]{values|value}(val1,val2,...)[,(val21,val22,....),....] 第二种: insert into tb_name set col_name=val1,col2=val2,.... 第三种(将一个表中的数据插入到另外一张表中): insert into tb_name select

SpringMVC学习笔记二:常用注解

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6831976.html  一.用于定义类的注解:@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个Controller 对象. DispatcherServlet将会扫描使用了该注解的类的方法,并检测方法是否使用了@RequestMapping 注解.@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器

mybatis学习日志二

一.动态sql语句 if语句 if+where语句 if+set语句 choose(when,otherwise)语句 trim语句 sql片段 foreach语句 总结 bean部分的User类代码: public class User { private int id; private String name; private int age;//如果在if判断中用null,则把int改成Integer private String sex; private List<Integer> i

SpringMVC学习日志一

一.MVC流程图 1.传统MVC 2.SpringMVC 二.一个简单的SpringMVC 1.导入相关的包 2.配置DispatcherServlet 在web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp

SpringMVC学习日志三

一.回顾 1.1 如果接受的参数为日期时间类型,需要在controller中进行处理.  @InitBinder  使用实体类封装时间类型 @DateTimeFormat 1.2 如何保存数据让网页获取该数据. ModelAndView: Model: 默认为request作用域 Map: HttpServletRequest: HttpSession: @SessionAttributes(name={}) 1.3 处理静态资源.  如果DispatcherServlet处理的请求地址为/,那

Spring学习日志二

一.回顾 1.1 restful风格  GET(查找) POST(添加)  [PUT(更新) DELETE(删除) 一定要使用springmvc中的过滤器,来把post提交转化为PUT,DELETE, _method:表示真正的提交方式] 1.2 Springmvc如何进行异常处理. 1.局部  2.全局 @ControllerAdvice 1.3 Spring框架.它就是一个容器,管理类对象的生命周期. 1.4 IOC(DI) 控制反转 Class A中用到了Class B的对象b,一般情况下