Java Web之SpringMVC 进行参数绑定

简介: 学习方法当需要学习一个新的MVC框架需要从以下方面入手:1、环境搭建(能输出Hello Word)2、如何传递参数到Controller,Controller如何获取参数3、如何从Controller传递Model到View4、如何完成文件的上...

学习方法

当需要学习一个新的MVC框架需要从以下方面入手:

1、环境搭建(能输出Hello Word)
2、如何传递参数到Controller,Controller如何获取参数
3、如何从Controller传递Model到View
4、如何完成文件的上传
5、如何完成验证
6、异常的处理
7、深入学习一些原理和源代码的学习

分享一下如何传递参数到Controller,Controller如何获取参数

SpringMVC如何进行参数绑定

一、什么是控制器

在一个POJO类定义处标注@Controller,再通过<context:component-scan />扫描响应的包,就可以使POJO类成为一个能处理HTTP请求的控制器

二、请求映射到控制器

用@RequestMapping,可以定义在类和方法上,将一个请求映射到控制器中的方法上。

三、几种典型的处理请求的方法(Controller如何获取请求参数)

1、请求的参数按名称匹配的方式绑定到入参中,返回字符串代表逻辑视图名

@RequestMapping(value="/handle1")
public String handle1(@RequestParam("userName") String userName,
        @RequestParam("password") String password,
        @RequestParam("realName") String realName)
{
  ...
return success;
}

@RequestParam 用来请求request中的参数,相当于request.getParameter() 其中有三个属性:

  • value用来指定要取得参数的key;
  • required 所取的参数是否必须存在,如果true表示必须存在,若不存在则抛出异常;
  • default 指定该value的默认值。

这一种方式说明参数是URL的一部分,此时也可以去掉@RequestParam,直接写参数就可以了
public String handle1(String userName, String password, String realName)

2、将cookie的值及报文头部属性绑定到入参,方法返回ModelAndView

@RequestMapping(value="/handle2")
public ModelAndView handle2(@CookieValue("JSESSIONID") String sessionId,
       @RequestHeader("Accept-Language") String accpetLanguage)
{
       ModelAndView mav = new ModelAndView();
       mav.setViewName("success");
       mav.addObject("user", new User());
       return mav;
}

3、请求的参数按名称匹配的方式绑定到 user 属性中,返回字符串代表逻辑视图名

@RequestMapping(value="/handle3")
public String handle3(User user)
{
  ...
return success;
}

按“HTTP请求参数名= 命令/表单对象的属性名”的规则,自动绑定请求数据,自动进行基本类型数据转换

4、直接使用Servlet API 对象作为处理方法的入参,返回字符串代表逻辑视图名

@RequestMapping(value="/handle4")
public String handle4(HttpServletRequest request)
{
  ...
return success;
}

5、以REST技术向springMVC传递参数使用占位符

public ModelAndView show(@PathVariable("userid") String userid)
{
       ModelAndView mav = new ModelAndView();
       mav.setViewName("success");
       mav.addObject("user", new User());
       return mav;
}

用@PathVariable来把占位符参数绑定到控制器处理方法的入参中
注意:占位符中的{xxx}要和@PathVariable("xxx")的名字一样

6、还可以使用一些其他的参数,如IO流等

目录
相关文章
|
19天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
38 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
24天前
|
Java
实现java执行kettle并传参数
实现java执行kettle并传参数
28 1
|
1月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
53 6
|
1月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
69 4
|
1月前
|
Java
在Java中定义一个不做事且没有参数的构造方法的作用
Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。
|
1月前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
65 0
|
2月前
|
存储 算法 Java
java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
这篇文章是关于如何在Java中使用Graphics2D的RenderingHints方法来提高海报制作的图像质量和文字清晰度,包括抗锯齿和解决文字不清晰问题的技术详解。
69 0
java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
WK
|
1月前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
83 0
|
2月前
|
前端开发 Java API
JAVA Web 服务及底层框架原理
【10月更文挑战第1天】Java Web 服务是基于 Java 编程语言用于开发分布式网络应用程序的一种技术。它通常运行在 Web 服务器上,并通过 HTTP 协议与客户端进行通信。
35 1
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
158 3