前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring MVC核心应用

Spring MVC核心应用

作者头像
xiaozhangStu
发布2023-05-04 19:27:08
1810
发布2023-05-04 19:27:08
举报
文章被收录于专栏:xiaozhangStuxiaozhangStu

springmvc核心应用

@RequestMapping下的方法的注意事项

返回值

可以为modelandview或者是String

modelandview上一章已经讲过不做赘述

接下来将String返回值的场景

代码语言:javascript
复制
package control;
​
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
​
@Controller
public class userController {
​
    @RequestMapping("jump")
    public String jump(){
        System.out.println("jump");
        //return "login";//逻辑视图名跳转地址 纯粹用于跳转页面,会拼接配置文件里设置的前缀和后缀
​
        return "redirect:login";//重定向 两次请求,地址变了,不会拼接配置文件里设置的前缀和后缀
​
       // return "forward:login";//转发一次请求地址不变,如果是forward,那么不会拼接配置文件里设置的前缀和后缀,直接原字符串转发资源
​
    }
    @RequestMapping("login")
    public String login() {
​
        System.out.println("controller");
        return "";
    }
}
​
参数

直接写接受参数,但是一般在参数前面加上@RequsetParam注解

代码语言:javascript
复制
 @RequestMapping("jump")
    public String jump(@RequestParam String name){
        System.out.println(name);
        //return "login";//逻辑视图名跳转地址 纯粹用于跳转页面,会拼接配置文件里设置的前缀和后缀
​
        return "redirect:login";//重定向 两次请求,地址变了,不会拼接配置文件里设置的前缀和后缀
​
       // return "forward:login";//转发一次请求地址不变,如果是forward,那么不会拼接配置文件里设置的前缀和后缀,直接原字符串转发资源
​
    }

局部异常处理

仅能处理指定Controller中的异常

@ExceptionHandler注解

一般不用

代码语言:javascript
复制
 @ExceptionHandler(value = {RuntimeException.class})
    public String ex(){
        xxxxx
        return "";
    }
全局异常处理

现在流行的就是在web.xml里去做。详细请看webxml配置

Spring 表单标签应用

必须在JSP页面的开头处声明taglib指令

代码语言:javascript
复制
<%@ taglib prefix="fm"     
         uri="http://www.springframework.org/tags/form" %>
​
Spring常用表单标签

名称

说明

fm:form/

渲染表单元素

fm:input/

输入框组件标签

fm:password/

密码框组件标签

fm:hidden/

隐藏框组件标签

fm:textarea/

多行输入框组件标签

fm:radiobutton/

单选框组件标签

fm:checkbox/

复选框组件标签

fm:select/

下拉列表组件标签

fm:error/

显示表单数据校验所对应的错误信息

了解一下,基本不用

Rest风格

简介

REST规范:

  • 强调HTTP应当以资源为中心,并且规范了资源URI的风格;
  • 规范了HTTP请求动作(PUT,POST等)的使用,具有对应的语义;

遵循REST规范的网络应用将会获得下面好处:

  • URL具有很强可读性的,具有自描述性;
  • 资源描述与视图的松耦合;
  • 可提供的OpenAPI,便于第三方系统集成,提高互操作性;
  • 如果提供无状态的服务接口,可提高应用的水平扩展性;
@PathVariable与@RequestParam区别

@PathVariable主要用于接收http://host:port/path/{参数值}数据。

@RequestParam主要用于接收http://host:port/path?参数名=参数值数据,这里后面也可以不跟参数值。

现在一般不使用这种方式了

服务器端的数据校验

利用JSR 303实现
步骤

1.加入jar文件

hibernate-validator-4.3.2.Final.jar jboss-logging-3.1.0.CR2.jar validation-api-1.0.0.GA.jar

2.实体类添加注解

约束

说明

@Null

被注释的元素必须为**null**

@**NotNull**

被注释的元素必须不为**null**

@**AssertTrue**

被注释的元素必须为 true

@AssertFalse

被注释的元素必须为 false

@Min(value)

被注释的元素必须是一个数字,其值必须大于等于指定的最小值

@Max(value)

被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@DecimalMin(value)

被注释的元素必须是一个数字,其值必须大于等于指定的最小值

@DecimalMax(value)

被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@Size(max, min)

被注释的元素的大小必须在指定的范围内

@Digits (integer, fraction)

被注释的元素必须是一个数字,其值必须在可接受的范围内

@Past

被注释的元素必须是一个过去的日期

@Future

被注释的元素必须是一个将来的日期

3.在controller层改动

方法参数中的实体类上加入@Vaild注解,紧跟着后面加上BindingResult br

方法体中通过hasErrors()方法判断是否要执行下面的程序

注意:@Valid注解标示的参数后面,必须紧挨着一个BindingResult参数,否则Spring会在校验不通过时直接抛出异常

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • springmvc核心应用
    • @RequestMapping下的方法的注意事项
      • 局部异常处理
        • Rest风格
          • 服务器端的数据校验
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档