SpringMVC中的@requestMapping问题与controller方法的返回值问题

@requestMapping

1、url映射

  定义controller方法对应的url,进行处理器映射使用

  @RequestMapping("/items")

  public class ItemsController {...}

2、窄化请求映射

3、限制http请求方法

出于安全性考虑,对http的链接进行方法限制。

如果限制请求为post方法,进行get请求,报错:

但是因为method={}是数组,所以可以把POST与GET方法都写进去

controller方法的返回值

1、返回ModelAndView

  需要方法结束时,定义ModelAndVIew,将Model 和View分别进行设置:

modelAndView.addObject("item", itemsCustom);

modelAndView.setViewName("editItem");

2、返回string

  若controller方法返回string

a.表示返回逻辑视图名。(所谓逻辑视图名即:在springMMVC里配置了前缀和后缀,所以具体路径简化为去掉前缀和后缀的路径)

真正视图(jsp路径)=前缀+逻辑视图名+后缀

b、redirect重定向

商品修改提交后,重定向到商品查询列表。

redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request(request无法共享)

c、forward页面转发

通过forward进行页面转发,浏览器地址栏url不变,request可以共享。

3、返回void

在controller方法形参上可以定义request和response,使用request或response指定响应结果:

a、使用request转向页面,如下:

request.getRequestDispatcher("页面路径").forward(request, response);

b、也可以通过response页面重定向:

response.sendRedirect("url")

c、也可以通过response指定响应结果,例如响应json数据如下:

response.setCharacterEncoding("utf-8");

response.setContentType("application/json;charset=utf-8");

response.getWriter().write("json串");

 

原文地址:https://www.cnblogs.com/lxc116317/p/9431056.html

时间: 2024-08-09 00:55:22

SpringMVC中的@requestMapping问题与controller方法的返回值问题的相关文章

Controller方法的返回值

方法的返回值1.ModelAndView这个就不多说,这是最基础的,前面定义一个ModelAndView,中途使用addObject方法添加属性,再返回.视图解析器会自动扫描到的.2.String这个就有三种情况了:<1>return普通的string这个string的表示逻辑视图名,真正跳转的视图名=前缀+逻辑视图名+后缀返回值为string也可以实现类似于ModelAndView的效果,如何进行给视图值呢?我们可以给方法加一个Model的参数,然后调用model的addAttribute方

11.SpringMVC注解式开发-处理器方法的返回值

处理器方法的返回值 使用@Controller 注解的处理器的处理器方法,其返回值常用的有四种类型 1.ModelAndView 2.String 3.void 4.自定义类型对象 1.返回ModelAndView 若处理器方法处理完后,需要跳转到其他资源,且又要在跳转的资源间传递数据,此时处理器方法 返回ModelAndView比较好.当然,若要返回ModelAndView,则处理器方法中需要定义ModelAndView对象 在使用时,若该处理器方法只是进行跳转而不传递数据或只是传递数据而不向

java中Arrays类中,binarySearch()方法的返回值问题

最近在复习Java知识,发现果然不经常使用忘得非常快... 看到binarySearch()方法的使用时,发现书上有点错误,于是就自己上机实验了一下,最后总结一下该方法的返回值. 总结:binarySearch()方法的返回值为:1.如果找到关键字,则返回值为关键字在数组中的位置索引,且索引从0开始2.如果没有找到关键字,返回值为负的插入点值,所谓插入点值就是第一个比关键字大的元素在数组中的位置索引,而且这个位置索引从1开始. 注意:调用binarySearch()方法前要先调用sort方法对数

012-关于EditText中的getText()方法的返回值类型以及string的转换问题(转)

原文链接:https://blog.csdn.net/mattdong0106/article/details/10139389 EditText中的getText()方法的返回值为CharSequence,如果我们想要获得string类型数据的话,需要在后边加上.toString 另外,String类型转为int:Integer.parseInt(str); String类型转为float:Float.parseFloat(str); string和Date的相互转换: DateFormat

Object处理方法的返回值

创建一个User实体类,并在其中写上属性值,并将其进行封装: public class User { private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { t

jquery中的get和post、ajax有关返回值的问题描述

一:前言 今天我就要离开公司回学校准备考试,在走之前,我自己做的一个模块测试除了一些小的bug.问题如下 我在往数据库中插入数据,首先要选择一级菜单,接着会更具一级菜单生成一级菜单的子目录,在选择日期.填完数据后进行保存操作.在点击保存时需要对新增的数据进行验证,就是根据一级目录的编号和日期来进行查询,如果有的话就要弹出一个提示框,告诉其其中已经有了改目录该日期的数据.在这里我就需要进行验证.但是我在用jquery.get方法来写时怎么都没有用.而此时我又快下班走人了,弄得我很烦躁,最后还是一个

正确理解Java方法的返回值

首先来看一段代码 我们把这段代码称为代码①,接下来我们再来看另外一段代码 我们把这段代码称为代码②.在代码①当中,定义了一个方法,这个方法声明的返回值类型是double,而实际通过return关键字返回的却是一个int型的值,但并没有引起编译错误.而在代码②当中,情况正好相反,方法声明的返回值类型是int,方法内部的return关键字实际返回了一个double类型的值,在这种情况下,编译器却报出了语法错误.对比一下这两种情况,很多初学Java的小伙伴搞不清:为什么同样是方法声明的返回值类型与实际

尾递归 递归函数中,递归调用是整个函数体中最后的语句,且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归,空间复杂度是O(1)

什么是递归深度 递归深度就是递归函数在内存中,同时存在的最大次数. 例如下面这段求阶乘的代码: Java: int factorial(int n) { if (n == 1) { return 1; } return factorial(n - 1) * n; } Python: def factorial(n): if n == 1: return 1 return factorial(n-1) * n C++: int factorial(int n) { if (n == 1) { re

SpringMVC使用注解完成 URL 和 Controller &amp; 方法之间的映射细节

1. 使用 @RequestMapping 来进行 URL 和 类 及 方法之间的映射. 2. @RequestMapping 注解可以标识到类上面,也可以标识到方法上 1). 若类上面没有标识,则方法上面的直接相对于 WEB 应用的根目录 < a href ="helloworld?name=springMVC">Hello SpringMVC </a> 2). 若类上面有 @RequestMapping 标识,则类上面的 @RequestMapping 的