当前位置:   article > 正文

ajax跳转controller后判断返回值_SpringBoot2编写第一个Controller

ajax 获取springboot返回值

前言:

SpringBoot的Controller模块用的是SpringMvc,所以用法和MVC没有差异。

该文章主要讲解

1.如何接收一个请求

2.如何获取请求的参数

3.常用的两种返回值JSONObject和ModelAndView

4.GET请求和POST请求

5.获取路径参数

6.HttpServletRequest和HttpServletResponse对象

1.新建一个HelloController.java类,代码和结构如图所示

package org.xujun.springboot.controller;

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

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

@RestController

public class HelloController {

@GetMapping("hello")

public String hello() {

return "hello springboot";

}

}

94711f5a9803b6af2c1873a7c5199f18.png

运行项目,并且访问[http://127.0.0.1:8080/hello]。结果如下图所示

2804961ade7c951810134e6b3d58193f.png

2.请求并带参数,添加一个方法

@GetMapping("hello")

public String data(String name, Integer age) {

System.out.println(name);

System.out.println(age);

return name;

}

5bb1b4e3ac8f90b4a8e012524ffd2a55.png

其中name和age为参数的Key,只要Key对应上即可获取到对应的值。要注意@GetMapping("data")中的URI必须不同,不然启动会报错。

运行项目,并且访问[http://127.0.0.1:8080/data?name=xujun?age=18]。结果如下图所示

328846644f291085d95d30189e4f8346.png

3.常用的两种返回值ajax和ModelAndView

通常我们会有两种常用的返回值,JSONObject用于相应ajax请求,ModelAndView用于输出一HTML个是的页面

3.1.输出JSONObject

本次使用的JSONObject包为阿里巴巴的fastjson包,因此先引入fastjson的jar包

打开pom.xml添加依赖

com.alibaba

fastjson

1.2.62

如图:

b0df84a671a9042900dcd83c614e019b.png

然后编写Controller的方法

@GetMapping("json")

public JSONObject json() {

JSONObject data = new JSONObject();

data.put("name", "xujun");

data.put("age", 18);

return data;

}

d2ed6af931d92d9b854e3e97d66080f2.png

运行项目,并且访问[http://127.0.0.1:8080/json]。结果如下图所示

8c28ca5b3a01e10d7c534e92089bb37e.png

3.2.输出ModelAndView

由于ModelAndView用于输出页面的,所以我们需要配置SpringMvc的模板解析引擎,本次采用的模板解析引擎为Freemarker(对此模板解析引擎不推荐用JSP,后期会有文章讲解如何换模板引擎),因此先要引入Freemarker引擎的jar包。

打开pom.xml添加依赖

org.springframework.boot

spring-boot-starter-freemarker

如图:

c6dd9090e54ba2cf196e9884cc545bcc.png

然后配置Freemarker模板解析引擎

打开application.properties添加

# Freemarker配置

# spring.freemarker.enabled : Freemarker是否启用

# spring.freemarker.template-loader-path : 载入路径

# spring.freemarker.prefix : 模板文件前缀

# spring.freemarker.suffix : 模板文件后缀

# spring.freemarker.content-type : 上下文类型

# spring.freemarker.charset : 字符编码

# spring.freemarker.settings.tag_syntax : 设置标签类型([],<>)

# spring.freemarker.settings.date_format : Date格式化

# spring.freemarker.settings.time_format : Time格式化

# spring.freemarker.settings.datetime_format : Datetime格式化

spring.freemarker.enabled=true

spring.freemarker.template-loader-path=classpath:/static/views/

spring.freemarker.prefix=

spring.freemarker.suffix=.html

spring.freemarker.content-type=text/html

spring.freemarker.charset=UTF-8

spring.freemarker.settings.tag_syntax=auto_detect

spring.freemarker.settings.date_format=yyyy-MM-dd

spring.freemarker.settings.time_format=HH:mm:ss

spring.freemarker.settings.datetime_format=yyyy-MM-dd HH:mm:ss

如图:

bc4ac797ff348a59d81a41b07debfeba.png

接着在resources/static/views编写一个Freemarker模板的html页面

新建一个index.html

index

hello freemarker

如图:

79d59e201c82c63d20b3dbdf1eee62e9.png

最后编写Controller方法

@GetMapping("index")

public ModelAndView index() {

ModelAndView mv = new ModelAndView();

mv.setViewName("index");

return mv;

}

d8f21c178a1d95074b356063378c27ca.png

其中mv.setViewName("index");中index为模板的名字,因为前缀后缀在配置文件中已经配置,所以在此配置模板名字即可

运行项目,并且访问[http://127.0.0.1:8080/index]。结果如下图所示

e2fb8cb60fdcb93598ac3fc5c35f43a6.png

4.GET请求和POST请求

由于请求方式有GET和POST,所以SpringMVC这边也有对应的注解与其对应,参考如下

@GetMapping 仅接收GET请求

@PostMapping 仅接收POST请求

@RequestMapping GET或POST请求都可接收

替换Controller方法头部对应注解即可

5.获取路径参数

有时候我们需要把URL中的某个部分取下来当作参数那就可以采用@PathVariable来绑定url参数

首先编写Controller方法

@GetMapping("/list-{index}.html")

public String url(@PathVariable String index) {

return index;

}

其中{index}为占位符,这样就可以将list-1.html中的1取出赋值到String index中。

运行项目,并且访问[http://127.0.0.1:8080/list-1.html]。结果如下图所示

42fc53f3e4a623c4ea8f9a4a90e6b7da.png

6.HttpServletRequest和HttpServletResponse对象

有时候我们会在Controller中用到HttpServletRequest和HttpServletResponse对象,在Servlet中,doGet和doPost方法默认提供这两个对象,在SpringMVC中却没有。其实不然,要使用这两个对象,只要在对应的Controller方法的形参中添加这两个对象,SpringMVC就会自动注入。

如图:

400815eca7b7562fe0fff40782d8b6f6.png

总结:本文主要讲解了SpringBoot的Controller编写,由于SpringBoot采用SpringMvc框架,所以掌握SpringMvc写法即可,主要变化在于静态资源存放位置从WebContent/webapp转移到resources目录下,其他都大同小异了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/652238
推荐阅读
相关标签
  

闽ICP备14008679号