mvc 注解相应配置

SpringMvc相应注解配置

     @RequestParam
        参数注解
     @RequestHeader
         请求头注解
     @CookieValue
         Cookie注解

注解的好处是什么:

         只要你写上相应的注解他就会给你得到相应的参数、减少了一些繁杂的操作

import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.net.ssl.HostnameVerifier;
import javax.servlet.http.Cookie;

@Controller
//所明这个类是控制器 要想管理servlet就得将他们集中起来进行统一的管理

@RequestMapping("/mm")
//@RequestMapping 请求注解 也可以写在类上 相当于一个虚拟夹子 也可以当做加一个父路径

public class Action {
    private String key;

    @RequestMapping(value = "/hehe", method = RequestMethod.POST, params = {"name", "a=10"})
    // 可以选择同一个url也就是value 不同的请求方式的方法 好处根据你的请求方式选择参数
    // params 根据参数确定方法
    //method 此参数是请求方式的选择
    public void Method(String uname, String password) {
        //需要表单参数可以直接在方法参数上写参数名他会自动帮你获得
        // 不用从请求头上面获得了 方便了不少
    }

    @RequestMapping("/H1")
    public void Method1(@RequestParam(value = "H1", required = false, defaultValue = "小明") String name) {
        //@RequestParam
        // value 参数重命名 可以帮你获得里面的值
        // required 必填选择默认必填 false表示不用必填
        //defaultValue 表示默认值 你要是不填我就按这个填写
    }

    @RequestMapping("/H2")
    public void Method2(@RequestHeader(value = "key", required = true, defaultValue = "") String Key) {
        //@RequestHeader
        // value 参数重命名 可以帮你获得里面的值
        // required 必填选择默认必填 false表示不用必填
        //defaultValue 表示默认值 你要是不填我就按这个填写
    }

    @RequestMapping("H3")
    public void Method3(@CookieValue(value = "JSESSIONID") String json) {
        // @CookieValue
        // value 参数重命名 可以帮你获得里面的值
        // required 必填选择默认必填 false表示不用必填
        //defaultValue 表示默认值 你要是不填我就按这个填写
        //好处可以帮你拿到cookie 因为cookie的拿取  和赋值的操作是真的麻烦

    }
    
}

@RequestBody 注解 接收请求的内容体 例如json、txt、xml等

   public void aVoid(@RequestBody String body) {
       //尼玛 这个注解 只能这样接受String body
       // 可以用来接受 json、txt、xml等格式
       //主要用法还是用来接收 json 将json一口气读上来
       System.out.println(body);
   }

mvc中的用对象来接收数据

    @RequestMapping(value = "/HH",method = RequestMethod.POST)
    public void Method(Stu stu) {
        //注意 他只接受对应着这个对象的值
        System.out.println(stu.getAddress());
        System.out.println(stu.getName());
    }

@RequestAttribute 标记 相当于request.setAttribute("a","A");//生命周期短

@ModelAttribute 标记在所有 方法之前执行 永远是这个标记下的方法最先执行
在其他方法中取值 @ModelAttribute("address") 在方法中说明注解及请求参数名称即可

    public void m1(Model model) {
        model.addAttribute("address","上海");//可以带参到请求头
        System.out.println(1111);
    }

Model&Map 参数 MVC会自动把你的Model中的数据默认存储在request对象中(用add的方法添加即可,他会自动将参数带入请求头当中)

@SessionAttributes 注解 (检索Model和Map的数据是否要存储在Session中)全Action都有效果
names 名字(Model和Map中如果有这个属性自动塞入到session中)

types 类型(Model和Map中如果有这个类自动塞入 session中)

@SessionAttribute 在方法属性中声明此注解

在session中帮我取一个值 required必填项 、 name和value表示名字

返回参数都会包装成ModelAndView对象 可以设置跳转的页面 可以将数据带入请求头 带值到跳转页面(转发形式的)

    public ModelAndView A(ModelAndView modelAndView/*这里的对象Spring会帮我们创建好*/) {
        //ModelAndView modelAndView=new ModelAndView(); 当然你也可以自己选择new对象
        modelAndView.addObject("name", "小红");//转发所带的值
        modelAndView.setViewName("aa");//跳转页面
        return modelAndView;//执行将对象返回出去 他就会按照你的参数进行跳转
    }

返回json数据 因为有些需求是需要 将值进行运算后 返回json数据的
1.添加处理jsonjar包、版本可以自己选

com.fasterxml.jackson.core
jackson-databind
2.9.4

2.在spring xml中支持 mvc的注解
mvc:annotation-driven>

3.然后把 @RsponseBody
可以写在方法返回值及方法上
也可以直接在类上写 @RestController(写在类上这个类的返回值都是json数据)
@Controller @ResponseBody 写这两个和前面意思一样 都是这个类返回值都是json数据
接受JSON数据可以使用 @RequestBody进行注解(写在属性上面)

    public @ResponseBody Stu A(Stu stu) {
        //可以将对象包装成json返回出去,对象的创建与返回 都有spring帮你完成
        stu.setAddress("北京");
        stu.setName("小明");
        return stu;
    }
    @RequestMapping("/execute")
    //这里是响应头
    public @ResponseBody HashMap execute10() {
        //返回键值对集合、可以嵌套包装成json返回
        HashMap hashMap = new HashMap();
        hashMap.put("name", "熬夜那不要怕多喝点花茶");
        hashMap.put("address","这样猝死会比较香");
        HashMap hashMap1 = new HashMap();
        hashMap1.put("名言",hashMap);
        return hashMap1;
    }

上一篇:Mybatis传参总结


下一篇:C#将Word转换成PDF方法总结(基于Office和WPS两种方案)