zoukankan      html  css  js  c++  java
  • JAVA记录-@Controller和RequestMapping注解代码介绍

    1.spring-mvc.xml加入配置

     <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
        <context:component-scan base-package="com.net.xinfang.controller" />

    2.@controller/@RequestMapping/@RequestParam写法

    @Controller
    @RequestMapping(value = "/cte") ---代表第一层url
    public class CntoEnController {
        
        @RequestMapping(value="/getcte", method = {RequestMethod.GET})  ---代码第二次url
        public String test(HttpServletRequest request,Model model, 
        @RequestParam(value="langType", defaultValue="zh") String langType){  ---请求的值传给langType
           return "cte";                      
        }  
    }
    
    完整请求路径为:http://ip地址:端口号/项目名/cte/getcte?langType=zh
    

    3.@RequestMaping写法

    @RequestMapping(value="",method={"",""},headers={},params={"",""})

    参数:

    value:设置访问地址

    method:设置访问方式,常用的method=RequestMethod.POST,和method=RequestMethod.GET

    headers:头域,可以设置浏览器支持的格式

    params:访问参数设置

    注解作用:

    用来定义访问的url。可以是方法级别的,也可以是类级别的。两者可以协同工作,缩小选择范围。也可以隐藏代码的真实路径,更加具有安全性和可读性。

    @Autowired

    注解作用:

    可以对成员变量、方法和构造函数进行标注,来完成自动装配工作。可以消除get,set方法。

    可以使用@Autowired注解来减少代码量。首先,在applicationContext中加入:

    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

    然后,在变量上添加@Autowired注解,并去掉相应的getter和setter方法:

    public class ClasServiceImpl implements ClasService{
        
        @Autowired
        private ClasDAO clasDAO;
        
      ...
        
    }

    并且在applicationContext中将相应的<property></property>标签去掉:

        <bean id="clasService" class="com.school.service.ClasServiceImpl">
        </bean> 

    Spring启动时,AutowiredAnnotationBeanPostProcessor会扫描所有的Bean,当发现其中有@Autowired注解时,就会找相应类型的Bean,并且实现注入。

    @ResponseBody

    注解作用:

    直接放在方法上,表示返回类型将会直接作为Http响应字节流输出,可以用于Ajax。

    @RequestParam(required=,value="",defaultValue="")

    参数:

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

    value:传递的参数名称,String类型,可选项,有值则对应方法的参数

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

    @Override

    伪代码,表示重写(当然不写也可以),不过也有好处:

    1、可以当注释用,方便阅读;

    2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。
     例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。
  • 相关阅读:
    c:forTokens标签循环输出
    jsp转long类型为date,并且格式化
    spring中@Param和mybatis中@Param使用区别(暂时还没接触)
    734. Sentence Similarity 有字典数组的相似句子
    246. Strobogrammatic Number 上下对称的数字
    720. Longest Word in Dictionary 能连续拼接出来的最长单词
    599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
    594. Longest Harmonious Subsequence强制差距为1的最长连续
    645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
    409. Longest Palindrome 最长对称串
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7686279.html
Copyright © 2011-2022 走看看