百度
360搜索
搜狗搜索

controller常用注解,springmvc常用的注解有哪些详细介绍

本文目录一览: spring mvc中的controller常用的注解有哪些

pring MVC 常用的注解有:
@Controller
@ResquestMapping 用来定义访问URL,可以为整个类定义,也可以单个的为每个方法定义一个
@PathVariable
@ModelAttribute 获取页面参数
@ResquestParam
@ResponseBody
@SessionAttributes session管理
@CookieValue 获取cookie信息
我们重点了解常用的注解@Controler和@ResquestMapping
@Controller:表明某个类是一个controller
@ResquestMapping:请求路径映射,常常标注在一个类的方法上,也可以标注在整个类上,表明某个具体的方法来接受处理某次请求,标注在类上,表明访问此类路径下的方法(方法要单独标注配置路径,也就是请求路径,同上)

SpringBoot Controller接收参数的几种常用注解方式

今日份鸡汤:一岁一礼,一寸欢喜,往后余生,积极向上的生活,热气腾腾的活着。
1、请求路径中带参数 使用 @PathVariable 获取路径参数。即url/{id}这种形式。 demo:
运行结果展示:
2、@RequestParam 获取查询参数。即url?name=这种形式,用于get/post。springboot默认情况就是它,类似不写注解 demo:
运行结果展示:
3、@RequestBody获取POST请求参数 demo:
运行结果展示:
4、请求头参数以及Cookie (1)@RequestHeader (2)@CookieValue demo: 方式一:
运行结果展示:
方式二:
运行结果展示:

知识分享之Springboot——常用注解@Controller与@RestController区别

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

在日常使用Springboot框架时,我们需要编写一系列的各种各样的控制器,而最常用的就是注解@Controller与@RestController,对此有些小伙伴可能不清楚两者的区别,本节将其整理出来分享给大家。

@Controller 注解通常是配合Springboot中模板解析使用的。例如Thymeleaf、FreeMarker等,下面是使用的例子。

这里index.html指的就是我们使用模板格式编写的HTML页面。请求访问 http://localhost:8080/index 时将进入index方法,方法会进行返回至模板文件夹中的对应的html文件进行解析呈现。

@RestController注解是Spring4以后引入的,它是@ResponseBody和@Controller的结合体。相当于我们的类上面增加了@Controller和@ResponseBody注解。
这主要是用于我们的控制器中有需要返回指定格式的相应时进行使用的,例如我们需要该请求接口返回JSON数据时,就需要使用@RestController注解。
注:使用该注解时请求不会再走视图处理器。

springmvc常用的注解有哪些

1、@Controller
在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。
@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。那么要如何做Spring 才能认识它呢?这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式:
(1)在SpringMVC 的配置文件中定义MyController 的bean 对象。
(2)在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。

< context:component-scan base-package = "com.host.app.web" />//路径写到controller的上一层(扫描包详解见下面浅析)
2、@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
RequestMapping注解有六个属性,下面我们把她分成三类进行说明(下面有相应示例)。
1、 value, method;
value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
2、consumes,produces
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
3、params,headers
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
3、@Resource和@Autowired

springmvc 的string.类型参数 用什么注解

spring mvc常用的注解:
个介绍。
@Controller
@Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为
类名称开头字母小写,你也可以自己指定,如下
方法一:
@Controller
public class TestController {}
方法二:
@Controller("tmpController")
public class TestController {}
@RequestMapping
1.@RequestMapping用来定义访问的URL,你可以为整个类定义一个
@RequestMapping,或者为每个方法指定一个。
把@RequestMapping放在类级别上,这可令它与方法级别上的
@RequestMapping注解协同工作,取得缩小选择范围的效果。
例如:
@RequestMapping("/test")
public class TestController {}
则,该类下的所有访问路径都在/test之下。
2.将@RequestMapping用于整个类不是必须的,如果没有配置,所有的方法
的访问路径配置将是完全独立的,没有任何关联。
3.完整的参数项为:@RequestMapping(value="",method =
{"",""},headers={},params={"",""}),各参数说明如下:
value :String[] 设置访问地址
method: RequestMethod[]设置访问方式,字符数组,查看RequestMethod
类,包括GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE,常用
RequestMethod.GET,RequestMethod.POST
headers:String[] headers一般结合method = RequestMethod.POST使用
params: String[] 访问参数设置,字符数组 例如:userId=id
4.value的配置还可以采用模版变量的形式 ,例如:@RequestMapping
(value="/owners/{ownerId}", method=RequestMethod.GET),这点将在介
绍@PathVariable中详细说明。
5.@RequestMapping params的补充说明,你可以通过设置参数条件来限制
访问地址,例如params="myParam=myValue"表达式,访问地址中参数只有
包含了该规定的值"myParam=myValue"才能匹配得上,类似"myParam"之类
的表达式也是支持的,表示当前请求的地址必须有该参数(参数的值可以是
任意),"!myParam"之类的表达式表明当前请求的地址不能包含具体指定的
参数"myParam"。
6.有一点需要注意的,如果为类定义了访问地址为*.do,*.html之类的,则
在方法级的@RequestMapping,不能再定义value值,否则会报错,例如
Java代码
@RequestMapping("/bbs.do")
public class BbsController {
@RequestMapping(params = "method=getList")
public String getList() {
return "list";
}
@RequestMapping(value= "/spList")
public String getSpecialList() {
return "splist";
}
}
如上例:/bbs.do?method=getList 可以访问到方法getList() ;而访
问/bbs.do/spList则会报错.
@PathVariable
1.@PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板
变量。
例如:
Java代码
@RequestMapping(value="/owners/{ownerId}",
method=RequestMethod.GET)
public String findOwner(@PathVariable String ownerId, Model
model) {
Owner owner = ownerService.findOwner(ownerId);
model.addAttribute("owner", owner);
return "displayOwner";
}
2.@PathVariable用于地址栏使用{xxx}模版变量时使用。
如果@RequestMapping没有定义类似"/{ownerId}" ,这种变量,则使用在
方法中@PathVariable会报错。
@ModelAttribute
1.应用于方法参数,参数可以在页面直接获取,相当于
request.setAttribute(,)
2.应用于方法,将任何一个拥有返回值的方法标注上 @ModelAttribute,使
其返回值将会进入到模型对象的属性列表中.
3.应用于方法参数时@ModelAttribute("xx"),须关联到Object的数据类型
,基本数据类型 如:int,String不起作用
例如:
Java代码
@ModelAttribute("items")//<——①向模型对象中添加一个名为items的
属性
public List

阅读更多 >>>  spring常用的注解有哪些,说出springmvc常用的5个注解

populateItems() {

List

lists = new ArrayList

();

lists.add("item1");

lists.add("item2");

return lists;

}

@RequestMapping(params = "method=listAllBoard")

public String listAllBoard(@ModelAttribute("currUser")User user,

ModelMap model) {

bbtForumService.getAllBoard();

//<——②在此访问模型中的items属性

System.out.println("model.items:" + ((List

)

model.get("items")).size());

return "listBoard";

}

在 ① 处,通过使用 @ModelAttribute 注解,populateItem() 方法将在

任何请求处理方法执行前调用,Spring MVC 会将该方法返回值以“items

”为名放入到隐含的模型对象属性列表中。

所以在 ② 处,我们就可以通过 ModelMap 入参访问到 items 属性,当执

行 listAllBoard() 请求处理方法时,② 处将在控制台打印

出“model.items:2”的信息。当然我们也可以在请求的视图中访问到模型

对象中的 items 属性。

@ResponseBody

这个注解可以直接放在方法上,表示返回类型将会直接作为HTTP响应字节

流输出(不被放置在Model,也不被拦截为视图页面名称)。可以用于ajax。

@RequestParam

@RequestParam是一个可选参数,例如:@RequestParam("id") 注解,所以

它将和URL所带参数 id进行绑定

如果入参是基本数据类型(如 int、long、float 等),URL 请求参数中

一定要有对应的参数,否则将抛出

org.springframework.web.util.NestedServletException 异常,提示无

法将 null 转换为基本数据类型.

@RequestParam包含3个配置 @RequestParam(required = ,value="",

defaultValue = "")

required :参数是否必须,boolean类型,可选项,默认为true

value: 传递的参数名称,String类型,可选项,如果有值,对应到设置方

法的参数

defaultValue:String类型,参数没有传递时为参数默认指定的值

@SessionAttributes session管理

Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到

session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问

到这些属性。这一功能是通过类定义处标注 @SessionAttributes 注解来

实现的。@SessionAttributes 只能声明在类上,而不能声明在方法上。

例如

@SessionAttributes("currUser") // 将ModelMap 中属性名为currUser 的属性

@SessionAttributes({"attr1","attr2"})

@SessionAttributes(types = User.class)

@SessionAttributes(types = {User.class,Dept.class})

@SessionAttributes(types = {User.class,Dept.class},value={"attr1","attr2"})

@CookieValue 获取cookie信息

@RequestHeader 获取请求的头部信息

springmvc的注解都有哪些

一、@Controller 控制层 ,通常我们所说的action层
Controller控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户。Spring MVC 使用 @Controller 定义控制器,它还允许自动检测定义在类路径下的组件并自动注册。
二、@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
RequestMapping注解有六个属性
value, method;consumes,produces;params,headers
三、@Resource和@Autowired
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。
四、@ModelAttribute和 @SessionAttributes
代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。@SessionAttributes即将值放到session作用域中,写在class上面。
五、@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。
六、@requestParam
@requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter("name"),它有三个常用参数:defaultValue = "0", required = false, value = "isApp";defaultValue 表示设置默认值,required 铜过boolean设置是否是必须要传入的参数,value 值表示接受的传入的参数类型。
七、@ResponseBody
作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
八、@Component
相当于通用的注解,当不知道一些类归到哪个层时使用,但是不建议。
九、@Repository
用于注解dao层,在daoImpl类上面注解。

Spring Aop对Controller层拦截失效问题

问题:当使用Spring AOP对Controller层的Controller类的方法进行切面拦截,不起作用。AOP配置没有任何问题。

分析:断点调试:Spring源码断点调试,在调用Controller方法时,Controller的实例被JDK进行动态代理了;

解决:Spring默认的代理方式为JDK动态代理,而Controller层是没有接口实现的,所以Jdk无法对Controller接口进行动态代理,接口就无法拦截。不用接口的代理方式我们自然想到cglib,于是增加了cglib的代理配置

Spring MVC和 Spring 整合的时候,SpringMVC的dispatcher-servlet.xml文件中配置扫描包,不要包含 service的注解,Spring的applicationContext.xml文件中配置扫描包时,不要包含controller的注解,如下所示:

Spring MVC dispatcher-servlet.xml:

Spring MVC启动时的配置文件,包含组件扫描、url映射以及设置freemarker参数,让spring不扫描带有@Service注解的类。为什么要这样设置?因为springmvc.xml与applicationContext.xml不是同时加载,如果不进行这样的设置,那么,spring就会将所有带@Service注解的类都扫描到容器中,等到加载applicationContext.xml的时候,会因为容器已经存在Service类,使得cglib将不对Service进行代理,直接导致的结果就是在applicationContext 中的事务配置不起作用,发生异常时,无法对数据进行回滚。以上就是原因所在。

同样的在Spring的applicationContext.xml配置如下:

?

扫描指定的包中的类上的注解,常用的注解有:

@Controller声明Action组件

@Service声明Service组件 ???@Service("myMovieLister")

@Repository声明Dao组件

@Component泛指组件,当不好归类时.

@RequestMapping("/menu")请求映射

@Resource用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName")

@Autowired用于注入,(srping提供的) 默认按类型装配

@Transactional( rollbackFor={Exception.class})事务管理

@ResponseBody

@Scope("prototype")设定bean的作用域

@RequestParam、@PathVariable、@RequestBody和@Param

顾名思义:获取参数,即获取传送过来的参数。例如获取下面链接的id参数值:

//链接(注意链接格式区别)
http://localhost:8080/hello?id=6

此时@RequestParam的作用就可以获取id下来并且作为形参传给方法体里面的id。

@RequestParam用于Controller层,是Spring的注解。 解决前台参数名称与后台接收参数变量名称不一致的问题,等价于request.getParam。具体参数:
1??value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的name为username的参数的值将传入;
2??required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报 404 错误码;
3??defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SPEL表达式,如“#{systemProperties['java.vm.version']}”。

顾名思义:路径变量,即获取链接路径上的变量。例如获取下面链接的id:

//链接(注意比较上面一条链接)
http://localhost:8090/hello/6

此时@PathVariable的作用是将路径上的id获取进来传递给方法体里面的形参id,但是变量名称必须一样。比如这里: value = "/getBook/{id}" 和 @PathVariable Integer id ;两个都必须是一样的,即都为 id ,否则报错;

@RequestBody注解一般主要是用来处理 content-type:"application/json charset=utf-8" 或者 content-type:"application/xml charset=utf-8" 两种请求数据,一般是异步请求用的比较多些,例如:

此时@RequestBody注解就可以获取到请求中的各个参数,然后赋值到相对应的方法形参上。另外,当有一个实体类User包含了id和name的元素的话,在方法里面直接可以写 @RequestBody User user 就会自动封装好供使用了,不用麻烦像这样 @RequestBody Integer id,@RequestBody String name 一个一个的封装。

用于dao层,是MyBatis中的注解。使得mapper.xml中的参数与后台的参数对应上,也增强了可读性。

如果两者参数名一致得话,spring会自动进行封装,不一致的时候就需要手动去使其对应上。即:用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 。

在dao层,用来给参数命名,在MyBatis的mapper中加上该注解,传递的参数与Sql中的字段名一致:

handler method 参数绑定常用的注解,根据处理的Request的不同内容部分分为四类:(主要讲解常用类型)

dozer中的mapping注解两个list直接怎么转换

  一个简单的基于注解的 Controller
  使用过低版本 Spring MVC 的读者都知道:当创建一个 Controller 时,我们需要直接或间接地实现 org.springframework.web.servlet.mvc.Controller 接口。一般情况下,我们是通过继承 SimpleFormController 或 MultiActionController 来定义自己的 Controller 的。在定义 Controller 后,一个重要的事件是在 Spring MVC 的配置文件中通过 HandlerMapping 定义请求和控制器的映射关系,以便将两者关联起来。
  来看一下基于注解的 Controller 是如何定义做到这一点的,下面是使用注解的 BbtForumController:
  清单 1. BbtForumController.
  package com.baobaotao.web;
  import com.baobaotao.service.BbtForumService;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Controller;
  import org.springframework.web.bind.annotation.ModelAttribute;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RequestMethod;
  import java.util.Collection;
  @Controller //<——①
  @RequestMapping(“/forum.do”)
  public class BbtForumController {
  @Autowired
  private BbtForumService bbtForumService;
  @RequestMapping //<——②
  public String listAllBoard() {
  bbtForumService.getAllBoard();
  System.out.println(“call listAllBoard method.”);
  return “listBoard”;
  }
  }
  从上面代码中,我们可以看出 BbtForumController 和一般的类并没有区别,它没有实现任何特殊的接口,因而是一个地道的 POJO。让这个 POJO 与众不同的魔棒就是 Spring MVC 的注解!
  在 ① 处使用了两个注解,分别是 @Controller 和 @RequestMapping。在“使用 Spring 2.5 基于注解驱动的 IoC”这篇文章里,笔者曾经指出过 @Controller、@Service 以及 @Repository 和 @Component 注解的作用是等价的:将一个类成为 Spring 容器的 Bean。由于 Spring MVC 的 Controller 必须事先是一个 Bean,所以 @Controller 注解是不可缺少的。
  真正让 BbtForumController 具备 Spring MVC Controller 功能的是 @RequestMapping 这个注解。@RequestMapping 可以标注在类定义处,将 Controller 和特定请求关联起来;还可以标注在方法签名处,以便进一步对请求进行分流。在 ① 处,我们让 BbtForumController 关联“/forum.do”的请求,而 ② 处,我们具体地指定 listAllBoard() 方法来处理请求。所以在类声明处标注的 @RequestMapping 相当于让 POJO 实现了 Controller 接口,而在方法定义处的 @RequestMapping 相当于让 POJO 扩展 Spring 预定义的 Controller(如 SimpleFormController 等)。
  为了让基于注解的 Spring MVC 真正工作起来,需要在 Spring MVC 对应的 xxx-servlet.xml 配置文件中做一些手脚。在此之前,还是先来看一下 web.xml 的配置吧:
  清单 2. web.xml:启用 Spring 容器和 Spring MVC 框架
  

  
<web-app xmlns="“”
  xmlns:xsi=“”

  xsi:schemaLocation=“

  /web-app_2_5.xsd” version=“2.5”>

  

阅读更多 >>>  spring注解详解,springboot中注解(springboot中注解有哪些)

Spring Annotation MVC Sample

  


  

  

contextConfigLocation

  

classpath:applicationContext.xml

  

  


  

  

org.springframework.web.context.ContextLoaderListener

  

  

  
<!-- Spring MVC 的Servlet,它将加载WEB-INF/annomvc-servlet.xml 的
  配置文件,以启动Spring MVC模块-->

  

  

annomvc

  

org.springframework.web.servlet.DispatcherServlet

  

  

2

  

  

  

annomvc

  

*.do

  

  

  web.xml 中定义了一个名为 annomvc 的 Spring MVC 模块,按照 Spring MVC 的契约,需要在 WEB-INF/annomvc-servlet.xml 配置文件中定义 Spring MVC 模块的具体配置。annomvc-servlet.xml 的配置内容如下所示:
  清单 3. annomvc-servlet.xml
  

  
<beans
  xmlns=“”

  xmlns:xsi=“”

  xmlns:p=“”

  xmlns:context=“”

  xsi:schemaLocation=“

  /spring-beans-2.5.xsd

  

   … ing-context-2.5.xsd”>

  


  

  


  
<bean class="“org.springframework.web.servlet.mvc.annotation.
  AnnotationMethodHandlerAdapter”/>

  


  
<bean class="“org.springframework.web.servlet.view.InternalResourceViewResolver”
  p:prefix=“/WEB-INF/jsp/” p:suffix=“.jsp”/>

  

  因为 Spring 所有功能都在 Bean 的基础上演化而来,所以必须事先将 Controller 变成 Bean,这是通过在类中标注 @Controller 并在 annomvc-servlet.xml 中启用组件扫描机制来完成的,如 ① 所示。

  在 ② 处,配置了一个 AnnotationMethodHandlerAdapter,它负责根据 Bean 中的 Spring MVC 注解对 Bean 进行加工处理,使这些 Bean 变成控制器并映射特定的 URL 请求。

  而 ③ 处的工作是定义模型视图名称的解析规则,这里我们使用了 Spring 2.5 的特殊命名空间,即 p 命名空间,它将原先需要通过

元素配置的内容转化为

属性配置,在一定程度上简化了

的配置。

  启动 Tomcat,发送 URL 请求,BbtForumController 的 listAllBoard() 方法将响应这个请求,并转向 WEB-INF/jsp/listBoard.jsp 的视图页面。

  回页首

  让一个 Controller 处理多个 URL 请求

  在低版本的 Spring MVC 中,我们可以通过继承 MultiActionController 让一个 Controller 处理多个 URL 请求。使用 @RequestMapping 注解后,这个功能更加容易实现了。请看下面的代码:

  清单 3. 每个请求处理参数对应一个 URL

  package com.baobaotao.web;

  import com.baobaotao.service.BbtForumService;

  import org.springframework.beans.factory.annotation.Autowired;

  import org.springframework.stereotype.Controller;

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

  @Controller

  public class BbtForumController {

  @Autowired

  private BbtForumService bbtForumService;

  @RequestMapping(“/listAllBoard.do”) // <—— ①

  public String listAllBoard() {

  bbtForumService.getAllBoard();

  System.out.println(“call listAllBoard method.”);

  return “listBoard”;

  }

  @RequestMapping(“/listBoardTopic.do”) // <—— ②

  public String listBoardTopic(int topicId) {

  bbtForumService.getBoardTopics(topicId);

  System.out.println(“call listBoardTopic method.”);

  return “listTopic”;

  }

  }

  在这里,我们分别在 ① 和 ② 处为 listAllBoard() 和 listBoardTopic() 方法标注了 @RequestMapping 注解,分别指定这两个方法处理的 URL 请求,这相当于将 BbtForumController 改造为 MultiActionController。这样 /listAllBoard.do 的 URL 请求将由 listAllBoard() 负责处理,而 /listBoardTopic.do?topicId=1 的 URL 请求则由 listBoardTopic() 方法处理。

  对于处理多个 URL 请求的 Controller 来说,我们倾向于通过一个 URL 参数指定 Controller 处理方法的名称(如 method=listAllBoard),而非直接通过不同的 URL 指定 Controller 的处理方法。使用 @RequestMapping 注解很容易实现这个常用的需求。来看下面的代码:

  清单 4. 一个 Controller 对应一个 URL,由请求参数决定请求处理方法

  package com.baobaotao.web;

  import com.baobaotao.service.BbtForumService;

  import org.springframework.beans.factory.annotation.Autowired;

  import org.springframework.stereotype.Controller;

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

  @Controller

  @RequestMapping(“/bbtForum.do”) // <—— ① 指定控制器对应URL请求

  public class BbtForumController {

  @Autowired

  private BbtForumService bbtForumService;

  // <—— ② 如果URL请求中包括“method=listAllBoard”的参数,由本方法进行处理

  @RequestMapping(params = “method=listAllBoard”)

  public String listAllBoard() {

  bbtForumService.getAllBoard();

  System.out.println(“call listAllBoard method.”);

  return “listBoard”;

  }

  // <—— ③ 如果URL请求中包括“method=listBoardTopic”的参数,由本方法进行处理

  @RequestMapping(params = “method=listBoardTopic”)

  public String listBoardTopic(int topicId) {

  bbtForumService.getBoardTopics(topicId);

  System.out.println(“call listBoardTopic method.”);

  return “listTopic”;

  }

  }

阅读更多 >>>  springdatajpa面试题,面试 - 必知必会的微服务面试题

</beans

网站数据信息

"controller常用注解,springmvc常用的注解有哪些"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:controller常用注解,springmvc常用的注解有哪些的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!