SpringBoot Controller中各个注解的使用(三)

Controller的使用

@Controller处理http请求(整体页面刷新提交的处理注解

@RestController

Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller

ajax提交,一般返回json格式

@RequestMapping

配置url映射

Controller的url路径参数

@PathVariable 获取url中的数据

@RequestParam 获取请求参数中的值


一.@Controller整体页面交互

请求后台,必须返回一个视图,以前我们一般用Jsp,但是SpringBoot不推荐我们实用jsp,主要是强调前后台分离;

官方推荐的是这几种模版视图引擎,


推荐Freemarker和Velocity;

首先,添加Freemarker支持,打开pom.xml文件,alt+/


弹出对话框


选择Freemarker


此时,在pom.xml文件

配置application.properties文件


FreemarkerController控制器

package com.hlx.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class FreemarkerController {

	@RequestMapping("/show")
	public ModelAndView show() {
		ModelAndView view = new ModelAndView("he");
		view.addObject("msg", "Freemarker Template Language 模板引擎!");
		return view;

	}
}

工程如下:


he.ftl


页面访问



二.@RestController ajax页面交互

package com.hlx.controller;

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

@RestController
@RequestMapping("/ajax")
public class AjaxController {
	
	@RequestMapping("/json")
	public String disable(){
		String json="{'msg1':'测试ajax!','msg2':'获得json的数据!'}";
		return json;
	}

}

index.html

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<!-- 引入JS -->
<script type="text/javascript" src="jquery-3.2.1.js"></script>

<script type="text/javascript">
$(function(){
	//单击事件
	$("#but").click(function(){	
		//异步post提交
		$.post("ajax/json",{},function(data){
			alert(data);
		});
			
	});
	
});


</script>
<body>
  <input type="button" id="but" value="单击我!"><p/>
  <a href="/hello3/path/208">使用pathVariable中的数据</a>
  <hr/>
  
  <a href="/hello3/path/find?uname=bear&upass=aaa">使用requestParameter参数的数据</a><p/>
  
  <a href="/hello3/path/find?uname=mike">使用requestParameter参数的数据</a>
</body>
</html>

浏览页面

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


三.介绍url地址上的参数使用

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/path")
public class PathController {

	@RequestMapping("/{id}")
	public ModelAndView show(@PathVariable("id") Integer id){
		//试图对象
		ModelAndView view=new ModelAndView("blog");
		//保存数据
		view.addObject("id", id);
		return view;
	}
	
	
	@RequestMapping("/find")
	public ModelAndView param(@RequestParam(value="uname",required=false) String uname, @RequestParam(value="upass",required=false) String pwd){
		//试图对象
		ModelAndView view=new ModelAndView("param");
		//保存数据
		view.addObject("name", uname);
		view.addObject("pwd",pwd);
		return view;
	}
}

(1)@PathVariable 获取url中的数据




(2)@RequestParam 获取请求参数中的值

 注意:(required=false)这个参数可以传也可以不传哦!

param.ftl








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. @SpringBootApplication 该注解是一个组合注解,包含了@ComponentScan、@SpringBootConfiguration、@EnableAutoConfiguration注解。其,@ComponentScan用于扫描Spring Bean并注册到Spring容器,@SpringBootConfiguration用于标识该类是Spring Boot应用的配置类,@EnableAutoConfiguration用于自动配置Spring Boot应用。 2. @RestController注解用于标识一个类是RESTful Web服务的控制器。与@Controller注解不同的是,@RestController注解会将类的所有方法默认返回JSON格式的数据,而不是视图。 3. @RequestMapping 该注解用于将一个HTTP请求映射到相应的处理方法上。可以通过value指定请求的URL路径,也可以通过method指定请求的HTTP方法。 4. @RequestParam 该注解用于将HTTP请求的参数绑定到方法的参数上。可以通过value指定参数的名称,也可以通过required指定参数是否为必填项。 5. @PathVariable 该注解用于将HTTP请求的路径变量绑定到方法的参数上。可以通过value指定路径变量的名称。 6. @ResponseBody 该注解用于将方法的返回值作为HTTP响应体返回给客户端。当方法返回的是对象时,Spring Boot会将该对象序列化为JSON格式的数据并返回给客户端。 7. @Autowired 该注解用于自动装配一个Bean。Spring Boot会根据类型将Bean注入到使用它的类。 8. @Bean 该注解用于将一个方法的返回值声明为一个Bean。Spring Boot会将该方法返回的对象注册到Spring容器。 9. @Configuration 该注解用于标识一个类是Spring的配置类,用于配置Spring应用上下文。 10. @EnableAutoConfiguration 该注解用于自动配置Spring Boot应用。Spring Boot会根据classpath的依赖自动配置应用。 11. @Component 该注解用于标识一个类是Spring Bean。使用注解可以将一个类注册到Spring容器。 12. @Service 该注解用于标识一个类是业务逻辑层的Bean。与@Component注解不同的是,使用@Service注解可以让代码更加清晰,方便阅读。 13. @Repository 该注解用于标识一个类是数据访问层的Bean。与@Service注解类似,使用@Repository注解可以让代码更加清晰,方便阅读。 14. @Value 该注解用于将配置文件的属性值注入到一个类的属性上。可以通过value指定属性的名称,也可以通过defaultValue指定默认值。 15. @ConfigurationProperties 该注解用于将配置文件的所有属性值注入到一个类。可以通过prefix指定属性的前缀,也可以通过ignoreUnknownFields指定是否忽略未知的属性。 除了以上常用的注解外,Spring Boot还提供了很多其他注解,如@Import、@EnableAspectJAutoProxy、@Transactional等,用于实现依赖注入和各种功能的开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值