0
点赞
收藏
分享

微信扫一扫

springMVC常用注解用法

凯约 2022-11-20 阅读 37

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 条评论