springMVC常用注解用法

package com.springs.mvc;

import com.spring.entity.User;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.portlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;

@Controller
@RequestMapping(value = "/hello")
@SessionAttributes("user")  //将model中为user的key,存入session
//另一种写法Session:@SessionAttributes(types = {User.class},value = {"user"})
public class HelloController {
    /**
     * value :映射路径
     * method:允许请求方法
     * consumes:允许请求内容类型
     * produces: 返回数据类型
     * params : 请求的request中必须包含某些参数值时,才处理(eg:该方法仅处理其中名为myparam、值为myvalue的请求)
     * headers :请求的header必须包含Referer=http://www.baidu.com才处理
     * RequestParam : 将参数loginname的值赋值给变量username,将参数password赋值给变量pwd
     * PathVariable :将url参数的{userId}绑定到变量userId上
     * RequestHeader :将header中User-Agent赋值给变量userAgent,value=Accept的值给accepts
     * CookieValue : 会自动将cookie中key为JSESSIONID的值赋值给sessionId,如果cookie中没有JSESSIONID就给defaultValue
     */
    @RequestMapping(
            value = "/pring/{userId}",method = {RequestMethod.POST,RequestMethod.DELETE},consumes = {"application/json"},
            produces = {"application/json"},params = {"myparam=myvalue"},headers = {"Referer=http://www.baidu.com"})
    public String pring(
            @RequestParam("loginname") String username, @RequestParam("password") String pwd, @PathVariable int userId,
            @RequestHeader("User-Agent") String userAgent,@RequestHeader("value=Accept") String[] accepts,
            @CookieValue(value = "JSESSIONID",defaultValue = "") String sessionId
    ){
        ModelAndView mv = new ModelAndView();
        mv.addObject("message","66");

        return "index";
    }

    /**
     * 如果有必要使用servlet的9大内置对象,可以直接在请求方法中直接写入,spring可以传入
     * 【注意】:org.springframework.ui.Model ,这不是一个servlet的api,是springMVC类型,
     * 每次调用请求处理方法时,springMVC都会创建Model对象,将其作为参数出传给方法
     * @param request
     * @return
     */
    public String demo2(HttpServletRequest request){
        return "";
    }

    /**
     * model 使用
     * @param username
     * @param password
     * @param model
     */
    @ModelAttribute//ModelAttribute修饰的方法会先于RequestMapping修饰的方法先执行,类似表单过滤form
    public void userModel(String username,String password,Model model){

        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        model.addAttribute("user",user);
    }
    @RequestMapping(value = "/login")
    public String login(Model model){

        User user = (User)model.asMap().get("user");
        user.setMobile("13247629622");
        return "result";
    }

    /**
     * ModelMap 使用
     * @param username
     * @param password
     * @param modelMap
     */
    @ModelAttribute//ModelAttribute修饰的方法会先于RequestMapping修饰的方法先执行,类似表单过滤form
    public void userModel2(String username,String password,ModelMap modelMap){

        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        modelMap.addAttribute("user",user);
    }
    @RequestMapping(value = "/login")
    public String login(ModelMap modelMap){

        User user = (User)modelMap.get("user");
        user.setMobile("13247629622");
        return "result";
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值