springmvc 之 处理方法的返回值类型

1. void: 并且没有使用servletapi进行跳转,那么默认会将请求名作为试图名进行跳转。

@RequestMapping("/login")
    public void login(User user){
    }

结果:

void: 在参数中使用了servletapi,并且在方法中使用servletapi进行了跳转。那么按照servletapi跳转的位置进行跳转。

@RequestMapping("/login")
    public void login(HttpServletRequest req,HttpServletResponse resp){
        try {
            req.getRequestDispatcher("success.jsp").forward(req, resp);
        } catch (ServletException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

结果:

使用servletAPI跳转页面,那么通过servletAPI来携带数据可以的,但是通过mvc的模型数据不能携带数据。

2. ModelAndView 返回null 的时候,页面不会跳转。

@RequestMapping("/login")
    public ModelAndView login(){
        System.out.println("login==========");
        return null;
    }

当返回值没有指定视图名时,默认使用请求名作为视图名进行跳转。

@RequestMapping("/login")
    public ModelAndView login(){
        return new ModelAndView();
    }

当返回值指定了视图名,那么按照指定的试图名进行跳转。

3. String: 如果返回值时null,那么以请求名作为视图名跳转。

      如果指定返回值,那么按照指定返回值作为视图名进行跳转,可以通过model,modelmap等携带数据

      如果返回值时带有“forword” 或者 “redired” 前缀,那么将会进行相应的请求转发和重定向,不能通过mvc的数据模型携带数据,可以通过servletApi来携带数据。

4. 其他类型:只能在异步时可以通过json返回。

时间: 2024-10-13 12:42:09

springmvc 之 处理方法的返回值类型的相关文章

SpringMVC方法的返回值类型和自动装配

1. void类型作为返回值类型 /** * 如果方法写成了void就跟原来servlet含义是差不多 的 * json */ @RequestMapping("/firstRequest") public void firstRequest(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException { UserInfo info=new UserI

java方法重写返回值类型

重写(Overriding)(1) 父类与子类之间的多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding).在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写.方法重写又称方法覆盖.(2)若子类中的方法与父类中的某一方法具有相同的方法名.返回类型和参数表,则新方法将覆盖原有的方法.如需父类中原有的方法,可使用super关键字

Spring MVC方法的返回值类型

一,String类型作为返回值类型 返回值类型为String时,一般用于返回视图名称 1.当方法返回值为Null时,默认将请求路径当做视图 /jsp/thread/secondRequest.jsp 如果说没有试图解析器,如果返回值为Null携带数据只能用JSON 2.当方法返回一个String的字符串时,当字符串为逻辑视图名时只返回视图,如果要携带数据则使用request,session或者Json 如果要用Model或者ModelMap传递数据,那么Model或者ModelMap绝对是方法入

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

怀疑:如果方法的返回值类型是引用类型的话,那么返回的就是地址。

缘由: "A property method may require additional memory or return a reference to somethingthat is not actually part of the object's state, so modifying the returned object has noeffect on the original object; querying a field always returns a reference

MyBatis中Mapper的返回值类型

insert.update.delete语句的返回值类型 对数据库执行修改操作时,数据库会返回受影响的行数. 在MyBatis(使用版本3.4.6,早期版本不支持)中insert.update.delete语句的返回值可以是Integer.Long和Boolean.在定义Mapper接口时直接指定需要的类型即可,无需在对应的<insert><update><delete>标签中显示声明. 对应的代码在 org.apache.ibatis.binding.MapperMe

函数式接口作为参数和作为返回值类型的案列

package com.itheima.demo3.LambdaTest; /** * @author newcityman * @date 2019/8/3 - 22:15 * 使用java.lang.Runnable接口作为参数,同时使用Lambda进行传参 */public class Demo01Runnable { // 定义一个方法startThread,方法的参数就是函数式接口Runnable public static void startThread(Runnable run)

正确理解Java方法的返回值

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

SpringMVC中使用@ResponseBody注解返回值,Ajax取得中文乱码解决方法

Spring使用AnnotationMethodHandlerAdapter的handleResponseBody方法, AnnotationMethodHandlerAdapter使用request header中"Accept"的值和messageConverter支持的MediaType进行匹配,然后会用"Accept"的第一个值写入 response的"Content-Type".一般的请求都是通过浏览器进行的,request heade