springMVC学习笔记之常用注解元素

Spring SpringMVC SpringBoot 常用注解说明 Spring SpringMVC SpringBoot 常用注解说明Spring注解与xml配置的区别不使用注解的案例@Autowired@Qualifier@Resource@Service使用注解来构造IoC容器@Component@Controller@Service@ RepositorySpring常用注解汇总Spring MVC@Controller@RequestMapping使用 ... 阅读详情

最近在做基于springmvc的一个项目,保留一下看到的有用的东西



常用注解元素

@Controller

         标注在Bean的类定义处

@RequestMapping

真正让Bean具备 Spring MVC Controller 功能的是 @RequestMapping 这个注解

@RequestMapping 可以标注在类定义处,将 Controller 和特定请求关联起来;

还可以标注在方法签名处,以便进一步对请求进行分流

 

   配套的属性有:

   value 需要跳转的地址

   method 基于RestFul的跳转参数,有RequestMethod.get  post  put  delete等

   params 符合某个参数的时候才调用该方法

   Headers 符合头信息的时候才调用

 

@SessionAttributes

         将结果放入session内

@ModelAttribute

存储在响应内容ModelMap或者ModelAndView进行保存值传到前台,当如果你需要保存值比较少

的时候可以采用这种方式进行保存值并且保存到前台显示

 

在默认情况下,ModelMap 中的属性作用域是 request 级别,相当于HttpServletRequest中的request.setAttribute() 一样,在 JSP 视图页面中通过 request.getAttribute(“attribute name”) 或者通过

${ attribute name } EL 表达式访问模型对象中的 属性对象

 

如果希望在ModelMap 的作用域范围为 session,可以有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。这一功能是通过类定义处标注 @SessionAttributes 注解来实现 如:

 

@Controller

@RequestMapping("/login.do")

@SessionAttributes("currUser")   

public class BbtForumController {。。。。。}

 

 

@ResponseBody

         标注后  返回String对象的结果为response内容体,不标注的话  作为dispatcher url使用

 

@PathVariable

   允许将请求路径的制定内容当做求情的参数使用

返回类型

请求处理方法入参的可选类型                                                   说明

void                                       此时逻辑视图名由请求处理方法对应的 URL 确定,如以下的方法:

@RequestMapping("/welcome.do")

public void welcomeHandler() {

}

对应的逻辑视图名为“welcome”

 

String                                    此时逻辑视图名为返回的字符,如以下的方法:

@RequestMapping(method = RequestMethod.GET)

public String setupForm(@RequestParam("ownerId") int ownerId, ModelMap model) {

     Owner owner = this.clinic.loadOwner(ownerId);

     model.addAttribute(owner);

     return "ownerForm";

}

                                              对应的逻辑视图名为“ownerForm”

 

ModelMap                            和返回类型为 void 一样,逻辑视图名取决于对应请求的 URL,

如下面的例子:

@RequestMapping("/vets.do")

public ModelMap vetsHandler() {

     return new ModelMap(this.clinic.getVets());

}

 

对应的逻辑视图名为“vets”,返回的 ModelMap 将被作为请求对应的模型对象,

可以在 JSP 视图页面中访问到。

ModelAndView                  

返回方式

1 使用无返回方法跳转,如果使用返回方法进行跳转的话,则会通过视图解析器进行以

prefix(前缀)+方法名+suffix(后缀)组成的页面文件名称.

 

2 使用一个返回的字符串方法作为跳转,使用字符串跳转的话好处就是在return的时候可

以自己指定返回的名字,JSP组成是prefix(前缀)+返回的字符串+suffix(后缀)

 

3 返回一个ModelAndView类型,使用setViewName方法则可以跳转到指定的页面.

 

路径匹配形式

         1、单一Controller   对应 单一的请求路径

                    

2、单一Controller   对应多个请求路径

 

3、单一Controller  对应多个请求路径,且路径内可以含有参数的形式

Demo code and UseCase

@Controller

@RequestMapping("/login.do")

public class SinglePathWithController {}

 

@Controller

@SessionAttributes(types = {UserBean.class,String.class},value={"currentUser","message"})

public class AdapterMultiPathController {}

 

@Controller

@RequestMapping(value = "/rest")

public class RestWithController {}

无返回

//无返回值  无参数返回的是根据 prefix前缀+@RequestMapping value +suffix

后缀组成

      @RequestMapping("/springmvc/common")

      public voidnovoid(HttpServletRequest request) {

         request.setAttribute("message", "novoid方法被调用");

      }


返回字符串

1、  作为视图路径方式

 

//根据路径直接匹配

@RequestMapping("/springmvc/multiReqPath1.do")

    public String multiReqPath1(HttpServletRequest request){

       request.setAttribute("message", "multiReqPath1方法被调用");

       return "springmvc/common";

    }

 

    @RequestMapping("/springmvc/multiReqPath2.do")

    public String multiReqPath2(HttpServletRequest request){

       request.setAttribute("message", "multiReqPath2方法被调用");

       return "/springmvc/common";

    }

 

//根据参数匹配

    @RequestMapping(params = "m=method1",method = RequestMethod.GET)

    public String method1(){

       return "login/success";

}

 

//有参数  参数名和请求url内的变量名一致

    @RequestMapping(params = "m=method2")

    public String method2(String name,String pwd){

       return name;

}

//有参数 参数名和请求url内的变量名不一致

    @RequestMapping(params = "m=method3",method = RequestMethod.GET)

    public String method3(@RequestParam("loginName")Stringname,@RequestParam("loginPwd")String pwd,HttpServletRequest request){

       request.setAttribute("message",(name + " " + pwd));

       return "login/"+name;

    }


 

2、  作为Response内容方式

//无参数

    @ResponseBody

    @RequestMapping(params = "m=method4")

    public String method4(){

       return "hello,guys";

}

 

//处理方法入参如何绑定 URL 参数

    @ResponseBody

    @RequestMapping(params = "m=method5",method = RequestMethod.GET)

    public String method5(String name,String pwd,int delay){

       return "name:"+name+","+"pwd:"+pwd+","+"delay:"+delay;

}

 

@ResponseBody

    @RequestMapping(params = "m=method6",method = RequestMethod.GET)

    public String method6(@RequestParam("userName")String name,DnTest test){

       return "DnTest:"+test.toString();

    }

 

URL 参数: userName参数将绑定到name上  其他与DnTest类内属性名称一致的参数将绑定到test的对应的属性上,如果参数不全  也不会报错

返回ModelAndView

@RequestMapping("/springmvc/modelAndView")

    public ModelAndView modelAndView(){

       ModelAndView mav = new ModelAndView();

       mav.setViewName("/springmvc/common");

       mav.addObject("message", "modelAndView 方法被调用");

       return mav;

    }

返回ModelMap

    @RequestMapping("/springmvc/modelMap")

    public ModelMap modelMap(ModelMap modMap){

       List<String> names = new ArrayList<String>();

       names.add("Rick");

       names.add("Austin");

        modMap.put("names", names);

       

        modMap.put("message", "hello guys");

        modMap.put("comment", "hello guys");

       

        return modMap;

    }

返回ModelMap

@RequestMapping("/springmvc/modelMap")

    public ModelMap modelAndView(ModelMap modMap){

       List<String> names = new ArrayList<String>();

       names.add("Rick");

       names.add("Austin");

      

        modMap.put("hello", "hello guys");

        modMap.put("names", names);

        return modMap;

    }

@SessionAttribute & ModMap

//注解方式

@Controller

@SessionAttributes(types = {UserBean.class,String.class},value={"currentUser","message"})

public class AdapterMultiPathController {}

 

//方法体

@RequestMapping("/springmvc/modelMap2")

    public ModelMap modelMapWithSession(ModelMap modMap,HttpServletRequest request){

       List<String> names = new ArrayList<String>();

       names.add("Rick");

       names.add("Austin");

       modMap.put("names",names);

      

        modMap.put("message", "hello guys");

        modMap.put("comment", "hello guys");

       

        UserBean user = new UserBean();

        user.setName("Rick");

        user.setMobile("18938900256");

        user.setTelephone(request.getParameter("userPhone"));

        user.setNumber(request.getParameter("userNumber"));

        modMap.put("currentUser", user);

       

        return modMap;

    }  

//初次请求

spring mvc & reverse ajax

@ResponseBody

    @RequestMapping(params = "m=method7",method = RequestMethod.GET)

    public String method7(String name,String pwd,int delay,HttpServletRequest req){

       req.startAsync();

      

       Date startTime = new Date();

       try {

           Thread.currentThread().sleep(delay);

       } catch (InterruptedException e) {

           e.printStackTrace();

       }

       Date entTime = new Date();

      

       return "name:"+name+","+"pwd:"+pwd+","+"delay:"+delay+",startTime:"+

              DateUtils.formatDate(startTime, "yyyy-MM-dd HH:mm:ss:SSS")+",endTime:"+

              DateUtils.formatDate(entTime, "yyyy-MM-dd HH:mm:ss:SSS");

    }

 

RestFull

@Controller

@RequestMapping(value = "/rest")

public class RestWithController {}

 

@ResponseBody

    @RequestMapping(value = "/{msg}", method = RequestMethod.GET)

    public String restString(@PathVariable String msg) {

       return msg;

    }

 

    @ResponseBody

    @RequestMapping(value = "/{path}/{value}", method = RequestMethod.GET)

    public String restXml(@PathVariable String path,@PathVariable String value) {

       return "path:"+path+",value:"+value;

    }

    @ResponseBody

    @RequestMapping(value = "/xml/{filename}", method = RequestMethod.GET)

    public String restFile(@PathVariable String filename) {

       if (filename!=null) {

           ProjectInits init = ProjectInits.getInstance();

           String dir = init.get("resource.dir", "C:/Projects/VoyagerWeb/resources");

           FileUtility fUtil = new FileUtility();

           String content = fUtil.readFile(dir+"/"+filename+".xml");

           return content;

       }

       else

           return "Invalid xml file name ["+filename+"]";

    }

 

 

验证 是否支持Overload

方式一

//验证 是否支持Overload

    @ResponseBody

    @RequestMapping(value = "/validate/overload1", method = RequestMethod.GET)

    public String overloadMethod(String name){

       return name;

    }

    @ResponseBody

    @RequestMapping(value = "/validate/overload2", method = RequestMethod.GET)

    public String overloadMethod(String name,DnTest test){

       return "DnTest:"+test.toString();

    }

 

方式二

/验证 是否支持Overload

        @ResponseBody

         @RequestMapping(params = "m=method11")

       public String method11(String name){

           return name;

       }

       

        @ResponseBody

         @RequestMapping(params = "m=method11")

       public String method11(int age,DnTest test){

           return "DnTest:"+test.toString();


SpringMVC中的常用注解 SpringMVC中的常用注解SpringMVC中的常用注解使用注解实现简单的登录 SpringMVC中的常用注解 @Controller @Controller注解标注是一个类是Web控制器,其和@Component注解等价,只不过在Web层使用,其便于区分类的作用。 @RequestMapping @RequestMapping是Spring Web应用程序中最常被用到的注解之一。 在对SpringMVC进行配置的时候,需要指定请求与处理方法之间的映射关系,这时候就需要使用@RequestMap 阅读详情

相关推荐

关于Spring和SpringMVC的一些常用注解

注解本身没有功能的,就和xml一样。注解和xml都是一种元数据,元数据即解释数据的数据,这就是所谓配置。 本文主要罗列Spring|和SpringMVC相关常用的注解。 Spring部分 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controlle......

林风自在 6846

SpringMVC框架中@Controller类的方法的返回值的详细介绍

SpringMVC框架中@Controller类所在的类里面的方法的返回值类型,返回值为ModelAndView,返回值为String,返回值为Object,返回值为void,返回值为List

weixin_44362089的博客 3452

告别重启烦恼:用WSL2让Docker和VMware在Win10上真正共存

本文详细介绍了如何在Windows 10系统上,借助WSL2实现Docker与VMware的真正共存,彻底告别以往需要反复重启切换的烦恼。通过启用Hyper-V兼容模式并进行正确配置,开发者无需重启即可同时高效运行容器和虚拟机,显著提升开发与测试工作流的连续性和效率。

salt9的博客 989

Spring MVC 基础(转载于网络)

常用注解元素 @Controller         标注在Bean的类定义处 @RequestMapping 真正让Bean具备Spring MVC Controller功能的是 @RequestMapping这个注解 @RequestMapping可以标注在类定义处,将 Controller和特定请求关联起来; 还可以标注在方法签名处,以便进一步对请求进行分流

lorkoy的专栏 859

避坑指南:LAMMPS做GCMC模拟时,化学势mu和压力p到底怎么设?

本文详细解析了LAMMPS中巨正则蒙特卡洛(GCMC)模拟的关键参数设置,特别是化学势(mu)与压力(p)的正确计算方法。通过理论分析、实用公式和黄金法则,帮助用户避免常见误区,提升模拟精度和效率,适用于各类复杂体系的分子模拟研究。

weixin_42525289的博客 432

数据结构之栈(Stack)的实现详解

堆栈是一种线性数据结构,其插入新元素和删除现有元素都发生在堆栈的顶部。栈(Stack)按照"后进先出"(Last-In-First-Out,LIFO)的原则存储和访问数据。栈类似于现实生活中的堆叠物体,比如一摞书或者一堆盘子。

swadian2008的博客 3813

SpringMVC的返回值类型

Springmvc 支持如下的返回方式: 一种是返回页面的数据,另外一种是通过@ResponseBody注解返回的数据不是html标签的页面,而是其他某种格式的数据(如json、xml等)。本文主要讲返回的是页面数据类型。下一遍会讲@ResponseBody注解返回的数据 ModelAndViewModelModelMapMapViewStrin

zhoujiyu123的专栏 1305

[AI] 本地部署 Dify 遇到 Internal Error?一文彻底解决密码不一致引发的问题

摘要:Dify本地部署常见InternalError错误主要由配置残留或密码不一致导致,特别是修改.env文件后未同步清除数据库记录。彻底解决方案包括:1)清理Docker数据;2)删除旧配置和数据库;3)还原源代码;4)重建.env文件;5)重新初始化部署。关键提醒:记录部署路径、备份.env文件并妥善保存密码。该错误本质是配置冲突,最有效方法是完全重置而非调试,保持清晰的部署管理可避免多数InternalError问题。(149字)

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 437

WebApi和MVC路由规则避坑指南

Global.asax GlobalConfiguration.Configure(WebApiConfig.Register); 必须写在RouteConfig.RegisterRoutes(RouteTable.Routes);之前。 否则访问webapi接口会报错:

weixin_46879188的博客 717

STM32 W5500 Freemodbus Modbus TCP协议功能实现

STM32F103VCT6 W5500(SPI1),实现Modbus-TCP协议的功能

坚韧与专注 2万+

基于STM32L4XX的环境光传感器(LTR-303ALS-01)应用程序设计

/ 状态寄存器的位[2:0]表示数据状态,例如位2为1表示新数据就绪[citation:6]#define LTR303_REG_DATA_CH0_LOW 0x8D // CH0数据低字节。#define LTR303_REG_DATA_CH0_HIGH 0x8E // CH0数据高字节。#define LTR303_REG_DATA_CH1_LOW 0x8F // CH1数据低字节。#define LTR303_REG_DATA_CH1_HIGH 0x90 // CH1数据高字节。

myron6688的博客 405

SpringMVC--视图解析器概述和前缀prefix、后缀suffix

1、Spring MVC视图解析器配置 Spring 视图解析器是 Spring MVC 中的重要组成部分,用户可以在配置文件中定义 Spring MVC 的一个视图解析器(ViewResolver),示例代码如下: <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" > <!--前缀--> <property name="prefix" value=

qq_45793102的博客 3562

Freeswitch DTMF 按键无法接收问题修复

freeswitch 在接收到 update后,会更新成新的 payload type,但是给的200响应,仍然是旧的,这时候就会导致手机侧认识需要发送旧的payload,所以发到 fs 后就会导致直接丢包,不去处理RTP包了。呼叫时需要设置通道变量 rtp_manual_rtp_bugs=ACCEPT_ANY_PAYLOAD ,这时候FS 就不会对包的payload进行判断,直接判定通过。应该修复 freeswitch 给响应时,应该根据收到的 payload 发送给手机,但是一直未找到正确的路径。

2301_81507069的博客 374

SpringMVC常用注解及其介绍

SpringMVC常用注解及其介绍 前言:在介绍SpringMVC常用注解之前,有兴趣的可以先了解一下SpringMVC的工作流程。SpringMVC工作流程详解 OK,接下来进入本次主题。 在实际项目中,我们最常用的几个注解,包括 @Controller、@RestController、 @RequestMapping、@PathVariable、@RequestParam 以及 @Reques...

weixin_45139929的博客 1万+

玩转Docker小游戏项目系列:Docker部署吃豆人经典小游戏

玩转Docker小游戏项目系列:Docker部署吃豆人经典小游戏

jks212454的博客 733

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Spring、SpringMVC常用注解总结

一、Spring常用注解 @Component:标注一个普通的Spring Bean类。 @Controller:标注一个控制器组件类。 @Service:标注一个业务层组件类。 @Repository:标注一个dao持久层组件类。 Bean实例的名字默认是Bean类的首字母小写,其他部分不变。 尽量考虑使用@Controller,@Service,@Repository代替通用的@Component。 二、SpringMVC常用注解 @Controller @RequestMappin

qq_42552857的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SpringMVC的常用注解

SpringMVC的常用注解

淡墨青衫、剑轻吟 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

springMVC常用注解

在java框架中,使用注解的作用就是注入属性 一、Spring常用注解 @Component:标注一个普通的Spring Bean类。 @Controller:标注一个控制器组件类。 @Service:标注一个业务层组件类。 @Repository:标注一个dao持久层组件类。 Bean实例的名字默认是Bean类的首字母小写,其他部分不变。 尽量考虑使用@Controller,@Service,@Repository代替通用的@Component。 二、SpringMVC常用注解 @Controll

qq_43549199的博客 1万+

SpringMVC中常用注解与使用方法

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web应用程序的全功能 MVC 模块。常用注解有GetMapping,RequestParam,RequestBody

小小张自由—>张有博 5696

springMVC学习笔记:一些常用注解的使用

在JavaEE开发中,几乎全部是基于b/s架构的开发。那么在b/s架构中,系统的标准三层架构包括:表现层、业务层、持久层。创建web应用程序表现层常使用MVC模式,MVC全名是Model View Controller.是模型(Model), 视图(view) ,控制器(controller)的缩写。在Java开发中实现MVC设计模型的请求驱动类型的轻量级web框架为springMVC。

jocer_zhu的博客 800

SpringMVC常用注解

SpringMVC的注解有很多,常用的注解有下面这几个: 使用注解可以简化配置,提高代码的可读性和可维护性。通过注解可以实现依赖注入,减少手动管理对象的代码量。注解还支持面向切面编程,实现切面、切入点和通知等。此外,注解提供了声明式事务管理的支持,简化了事务配置和管理。注解还可以用于组件扫描和自动装配,提高开发效率。最后,注解在测试时也有很好的支持。总之,注解使得代码更简洁、灵活,并能更好地利用框架的功能和特性。 是Spring MVC中用于标记类作为控制器的注解,主要用于传统的Web页面应用。 根据上面的

2301_78125917的博客 1220

springMvc常用注解

springMvc注解 1. @RequestMapping 指定请求路径 value: 指定接收的路径 method: 接收什么请求(get repost…) params: 对参数的限制 headers: 浏览器的请求头 @RequestMapping(value={"/add","/add2","/add3"}, method = RequestMethod.GET, // 接收的请求方法 params = {"!name","address=beijing",

wy 7316

Spring、SpringMVC、SpringBoot常用注解

Spring、SpringMVC、SpringBoot常用注解

guozai0904的博客 1515

SpringMVC 常用注解介绍

SpringMVC 常用注解介绍(超详细)

Mwt258的博客 1369

SpringMVC常用的注解

Spring MVC 提供了丰富的注解,这些注解可以简化开发过程,提高开发效率,使代码结构更加清晰。

aaaa_1111111的博客 881
上一篇: tomcat发布项目如何去掉项目名称
下一篇: springMVC学习笔记OpenSessionInView
qq_25041295
博客等级 码龄12年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值