zoukankan      html  css  js  c++  java
  • springMVC接收参数

    1.接收简单参数,在Controller的方法后面添加相应的参数列表,Controller的参数列表要和view层传的参数名一致。

    2.接收对象参数,在Controller的方法后面添加相应的实体类,实体类的属性名要和view层传的参数名一致。

    Controller类

    package com.zhiyou100.kfs.controller;

    import org.springframework.stereotype.Controller;

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.servlet.ModelAndView;

    import com.zhiyou100.kfs.bean.User;

    @Controller

    @RequestMapping("/login")

    public class LoginController {

            

             @RequestMapping("/login.do")

             public ModelAndView login(String username,String password) {//要和view层传的参数名一致

                       ModelAndView mv=new ModelAndView("login");

                       if("张三".equals(username)&&"admin".equals(password)) {

                                mv.addObject("name", "欢迎"+username+"!");

                       }else {

                                mv.addObject("name", "出错了!");

                       }

                       return mv;

             }

            

             @RequestMapping("/login1.do")

             public ModelAndView login1(User user) {//实体类的属性名对应要和view层传的参数名一致

                       ModelAndView mv=new ModelAndView("login");

                       if("张三".equals(user.getUsername())&&"admin".equals(user.getPassword())) {

                                mv.addObject("name", "欢迎"+user.getUsername()+"!");

                       }else {

                                mv.addObject("name", "出错了!");

                       }

                       return mv;

             }

    }

    和jsp

    <%@ page language="java" contentType="text/html; charset=utf-8"

        pageEncoding="utf-8"%>

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

    <title>Insert title here</title>

    </head>

    <body>

    ${name }

    <a href="/SpringMVC/login/login.do?username=张三&&password=admin">跳转到login.do</a>

    <a href="/SpringMVC/login/login1.do?username=张三&&password=admin">跳转到login1.do</a>

    </body>

    </html>

    3.接收日期时间参数

    a)      只能接受一个日期时间使用@initBinder在Controller:当接收的日期时间参数时会先经过该方法进行处理,但网页传的日期时间格式要和bider格式一样。

    需要在接收日期时间参数的Controller里增加:

    @InitBinder

    public void initBinder(ServletRequestDataBinder binder){

             //只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型,

    binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));

    }

    b)      能接受多个日期时间参数,在实体类对应属性上使用@DateTimeFormart(pattern=”yyyy-MM-dd”)

    4.接收对象中的对象的属性值(包装类:此处不是int等基本类型的包装类,而是对象里有个对象),例如User类里有个person对象(Person类有age属性,getter和setter)

    a)      在页面传参数时name要是对象中的对象名点属性名(person.age)

    personAge:<input type="text" name="person.age"/>

    b)      在controller层正常用user对象接就能接到了。

  • 相关阅读:
    showSoftInput不起作用
    GridView在PopWindow中OnItemClick不响应
    白盒测试范围
    Winform的ListBox的ValueMember和DisplayMember绑定的名称所属对象必须是Public的。
    谷歌浏览器安装adblock广告屏蔽插件
    php+curl上传文件
    win10我能ping通他人,但他人ping不同我
    自己的配置文件以及操作
    安装redis,执行make test时遇到You need tcl 8.5 or newer in order to run the Redis test
    安装redis时遇到zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
  • 原文地址:https://www.cnblogs.com/kfsrex/p/11455997.html
Copyright © 2011-2022 走看看