SpringMVC学习笔记(四)

一.Controller接受网页参数.

1.使用方法的形参来接受

//使用基本类型和字符串来接受
@RequestMapping(value="/param2.do")
public String param(People p){
     System.out.printlt(p.getName()+"===="+p.getAge());
     return "param";
}注意:该方法的形参一定要和网页参数名相同.而且这种方式可以自动转型.
public class Person {
    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;
    }
    private String name;
    private int age;
}
//使用对象类型来接受
@RequestMapping(value="/param2.do")
public String param(People p){
     System.out.printlt(p.getName()+"===="+p.getAge());
     return "param";
}

2.使用request来接受基本类型.

@RequestMapping(value="/param.do")
public String param(HttpServletRequest request,HttpServletResponse response){
     String name=request.getParameter("name");
     String age=request.getParameter("age");
     System.out.printlt(name+"===="+age);
     return "param";
}

如果接受的类型为时间类型我们可以做如下方式来处理.

//boxing automatically
@RequestMapping("/person1")
public String toPerson(Person p){
    System.out.println(p.getName()+" "+p.getAge());
    return "hello";
}
//1.该方法只能适合本控制层.@InitBinder
public void initBinder(ServletRequestDataBinder binder){
    binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),
            true));
}

//2.可以定义一个全局时间转化类.

public class DateConvert implements Converter<String, Date> {

    @Override
    public Date convert(String stringDate){
        System.out.println("=======================_______");
        //时间转化类(时间格式)
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return simpleDateFormat.parse(stringDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

}

在SpringMVC配置文件中声明该配置类

<!-- 第三步:注册处理器映射器/处理器适配器 ,添加conversion-service属性-->

    <mvc:annotation-driven conversion-service="conversionService"/>

    <!-- 第二步: 创建convertion-Service ,并注入dateConvert-->
    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <ref bean="dateConvert"/>
            </set>
        </property>
    </bean>
    <!-- 第一步:  创建自定义日期转换规则  class:为时间转化类的全类名-->
    <bean id="dateConvert" class="com.eduask.ykq.controller.DateConvert"/>

二.如何向网页响应数据

1.可以把数据保存在request对象中

//pass the parameters to front-end
@RequestMapping("/show")
public String showPerson(HttpServletRequest request,HttpServletResponse response){
    Person p =new Person();

    p.setAge(20);
    p.setName("jayjay");
    request.setAttribute("p",p);
    return "show";
}

2.可以把数据保存在ModelAndView中 但是这种方式的方法的返回类型必须是ModelAndView

//pass the parameters to front-end
@RequestMapping("/show")
public ModelAndView showPerson(){
    Person p =new Person();

    p.setAge(20);
    p.setName("jayjay");
    ModelAndView andView=new ModelAndView("show");
    andView.addObject("p",p);
    return andView;
}

3.可以把数据保存在Model中

//pass the parameters to front-end
@RequestMapping("/show")
public String showPerson(Model model){
    Person p =new Person();

    p.setAge(20);
    p.setName("jayjay");
    model.addAttribute("p",p);
    return "show";
}

4.可以把数据保存在Map中

//pass the parameters to front-end
@RequestMapping("/show")
public String showPerson(Map<String,Object> map){
    Person p =new Person();
    map.put("p", p);
    p.setAge(20);
    p.setName("jayjay");
    return "show";
}

前台可在Request域中取到"p"

时间: 2024-10-23 23:32:14

SpringMVC学习笔记(四)的相关文章

SpringMVC学习笔记四:SimpleMappingExceptionResolver异常处理

SpringMVC的异常处理,SimpleMappingExceptionResolver只能简单的处理异常 当发生异常的时候,根据发生的异常类型跳转到指定的页面来显示异常信息 ExceptionController.java 处理器 package com.orange.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.Requ

SpringMVC 学习笔记(四) 处理模型数据

Spring MVC 提供了以下几种途径输出模型数据: – ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据 – Map及Model:入参为org.springframework.ui.Model.org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map中的数据会自动添加到模型中. – @SessionAttributes: 将模型中的某个属性暂存到HttpSessio

springMVC学习笔记汇总(持续更新)

SpringMVC 学习笔记(一) Hello World SpringMVC 学习笔记(二) @RequestMapping.@PathVariable等注解 SpringMVC 学习笔记(三) 使用ServletAPI 和 实体 做为参数 SpringMVC 学习笔记(四) 处理模型数据 SpringMVC 学习笔记(五) 基于RESTful的CRUD SpringMVC 学习笔记(六) 数据绑定和JSR校验 SpringMVC 学习笔记(七) JSON返回:HttpMessageConve

SpringMVC学习笔记(二): 日常使用功能

前提: 1.web.xml 和spring-mvc核心配置如:SpringMVC学习笔记(一): 基础知识中注解实现. 2.类的@RequestMapping(value="/annotationController") 3.spring-mvc 推荐使用注解实现. 一.数据的接收 (一)URL参数数据的接收 1.使用 HttpServletRequest 获取参数 <span style="font-size:18px;"><span style

史上最全的SpringMVC学习笔记

SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setting of springmvcDispatcherServlet and configure the mapping--> <servlet> <servlet-name>springmvc</servlet

Caliburn.Micro学习笔记(四)----IHandle&lt;T&gt;实现多语言功能

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能 说一下IHandle<T>实现多语言功能 因为Caliburn.Micro是基于MvvM的UI与codebehind分离, binding可以是双向的所以我们想动态的实现多语言切换很是方便今天我做一个小demo给大家提供一个思路 先看一下效果 点击英文  变成英文状态点chinese就会变成中文                          源码的下载地址在文章的最下边 多语言用的是资源文件建

代码管理工具 --- git的学习笔记四《重新整理git(1)》

1.创建版本库 mkdir  创建目录 cd  地址,到该地址下 pwd 显示当前目录 1.创建目录 $ mkdir startGit $ cd startGit $ pwd 显示当前目录 或者cd到桌面,然后再创建目录 2.初始化版本库 $ git init 初始化仓库 提示信息:Initialized empty Git repository in /Users/xingzai/Desktop/startGit/.git/ 建立一个空的git仓库在/Users/xingzai/Desktop

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

小猪的数据结构学习笔记(四)

小猪的数据结构学习笔记(四) 线性表之静态链表 --转载请注明出处:coder-pig 本章引言: 在二,三中中我们分别学习了顺序表中的线性表与单链表,线性表有点类似于 我们前面所学的数组,而单链表使用的最多的是指针,这里问个简单的问题, 如果是在以前没有指针的话,前辈先人们怎么实现单链表呢?大家思考下! 没有指针,那么用什么来代替呢?前辈先人们非常机智,想出了使用下标+游标的方式 来实现单链表的效果!也就是今天要讲的--静态链表! 当然你也可以直接跳过本章,因为有了单链表就没有必要用静态链表了