SpringBoot之Controller使用

Controller的使用

@Controller 处理http请求
@RestController Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller
@RequestMapping 配置url映射

项目前后台交互的话 无非两种方式

一种普通整体页面提交,比如form提交;

还有一种局部刷新,或者叫做异步刷新,ajax提交;

@Controller就是整体页面刷新提交的处理注解

@RestController就是ajax提交,一般返回json格式

各有用处的;

这里我们分别来演示上面两种交互

首先演示下@Controller整体页面交互

这里的话请求后台,必须返回一个视图,以前我们一般用Jsp,

但是SpringBoot不推荐我们实用jsp,主要是强调前后台分离;

官方推荐的是这几种模版视图引擎,我一般推荐Freemarker和Velocity;

后面专门推出一起Freemarker或者Velocity教程;

我们用Freemarker来演示下;

首先第一步,添加Freemarker支持,我们有两种方式,

第一种 直接找依赖 然后贴到pom.xml里,这种费时间

我们用第二种,直接工具,打开pom.xml

alt+/ 提示

点下 Edit Starters

选择Freemarker,然后点“OK”即可

这样就自动添加了依赖,

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-freemarker</artifactId>

</dependency>

然后我们新建一个新的Controller类 HelloWorldFreemakerController

import org.springframework.stereotype.Controller;

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

import org.springframework.web.servlet.ModelAndView;

/**

 * 返回到freemaker视图

 * @author user

 *

 */

@Controller

@RequestMapping("/freemarker")

public class HelloWorldFreemakerController {

    /**

     * 设置数据,返回到freemarker视图

     * @return

     */

    @RequestMapping("/say")

    public ModelAndView say(){

        ModelAndView mav=new ModelAndView();

        mav.addObject("message""SpringBoot 大爷你好!");

        mav.setViewName("helloWorld");

        return mav;

    }

}

定义一个message,设置返回视图helloWorld

对应的,我们在templates下新建一个helloWorld.ftl模版文件

文件内容:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

show:${message}

</body>

</html>

我们测试下,启动HelloWorldApplication

然后浏览器输入:http://localhost:8888/HelloWorld/freemarker/say

页面显示结果:

我们在演示下@RestController,ajax方式

我们新建一个HelloWorldAjaxController类

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

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

/**

 * 返回ajax json格式

 * @author user

 *

 */

@RestController

@RequestMapping("/ajax")

public class HelloWorldAjaxController {

    @RequestMapping("/hello")

    public String say(){

        return "{‘message1‘: ‘SpringBoot你大爷‘,‘message2‘,‘SpringBoot你大爷2‘}";

    }

}

返回json串

这里我们用的是jquery,随便找个jquery.js

再新建一个index.html

index.html代码:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<script src="jQuery.js"></script>

<script type="text/javascript">

    function show(){

        $.post("ajax/hello",{},

                function(result){

                    alert(result);

                }

            );

    }

    

</script>

</head>

<body>

<button onclick="show()">你大爷</button>

</body>

</html>

一个ajax请求

启动HelloWorldApplication类

页面先请求index.html

浏览器输入:http://localhost:8888/HelloWorld/

点击 按钮,

当然这里的json比较简单,所以我直接返回; 实际项目Json格式复杂,要借助于一些json框架,比如Json-lib,gson等等;

当然还有一些比如

@PathVariable 获取url中的数据

@RequestParam 获取请求参数中的值

这些SpringMvc课程中已经有讲解,所以这里不作讲解;

原文地址:https://www.cnblogs.com/chenlove/p/8708430.html

时间: 2024-10-10 16:05:00

SpringBoot之Controller使用的相关文章

[技术博客] Springboot的Controller类使用

Springboot的Controller类使用 @Controller:处理http请求. 代码: @Controller public class QuestionController { ...... } @AutoWired:byType方式.把配置好的Bean拿来用,完成属性.方法的组装,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作.当加上(required=false)时,就算找不到bean也不报错. 代码: @Autowired private QuestionM

SpringBoot测试Controller层

一.准备工作 1.导入测试依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> 2.Controller层: @RestController("/") public class UserController { @Autow

springboot 之 controller

添加一个testController的java 类,部分代码 注解标记这是一个controller,配置路径,自动加载配置. 注入的方式有@Autowired 和@Resource 二者的区别是 @Autowired 属于spring,配合@Qualifier指定名称,加载方式跟resource不同 @Resource 属于JDK,直接指定名称,按照Type类型加载.

利用IDEA构建springboot应用-Controller的使用

Controller的使用 @Controller 处理http请求   @RestController  Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller  @RequestMapping 配置url映射 (路径) @Controller要配合模板使用  (了解下前后端分离) 如何获取url里面的参数 @PathVariable 获取url中的数据 @RequestParam 获取请求参数的值 @GetMapping 组合注解 @PathV

springboot关于controller的用法注解补充

@RequestMapping(value="/hello",method=RequestMethod.Post)  [email protected](value="/hello") @RequestMapping(value="/hello",method=RequestMethod.Get)  [email protected](value="/hello")

SpringBoot中Controller的使用

springboot的controller使用及url参数的获取

类上加上@RequestMapping其访问的地址就是类上的加上方法上的菜能访问到该方法,例如上图的地址就是/hello/say @RequestMapping(value = "/hello",method = RequestMethod.GET)和@GetMapping(value = "/hello")是等同的 这样就能获取url参数的值了,其结果如下

springboot后端controller参数接收

参考:https://blog.csdn.net/a532672728/article/details/78057218 get方法 : 1. http://localhost:8080/0919/test1?name=xxx&pwd=yyy 方法一:String test String name,string pwd)   名字匹配直接注入 方法二:String  test(User user)  //user对象的属性名匹配上,自动注入 方法三:String test (HttpServle

SpringBoot - 二零一七0421小记

一.SpringBoot使用起来比起SpringMVC更便捷,在注解上的小变化,我记录了下面几个: @Controller + @ResponseBody = SpringMVC中用@RestController来代替前面两个注解,通过这个注解,可以将所有的前端http请求放入SpringBoot的Controller容器中,并返回json格式的数据给前端 @RequestMapping(value={"/hello","/hi"},method=RequestMe