SpringMVC的常用注解
@Controller
public class User1Controller{
//@ModelAttribute修饰的方法会先与login调用,该方法用于接收前台jsp页面传入的参数
@ModelAttribute
public void userModel(String loginname,String password,Model model){
logger.info("userModel");
User user = new User();
user.setLoginname(loginname);
user.setPassword(password);
model.addAttribute("user",user);
}
@RequestMapping("/login1")
public String login(Model model){
logger.info("login");
//从Model当中取出之前存入的名为user的对象
User user = (User) model.asMap().get("user");
System.out.println(user);
user.setUsername("测试");
return "result11";
}
}
上面这个是model的使用;
@Controller
public class User2Controller{
private static final Log logger = LogFactory.getLog(User2Controller.class);
@ModelAttribute
public void userModel2(String loginname,String password,ModelMap modelmap){
logger.info("userModel2");
User user = new User();
user.setLoginname(loginname);
user.setPassword(password);
modelMap.addAttribute("user",user);
}
@RequestMapping("/login2")
public String login2(ModelMap modelMap){
logger.info("login2");
User user = (User) modelMap.get("user");
System.out.println(user);
user.setUsername("测试");
return "result2";
}
}
上面这个是ModelMap的使用;
@Controller
public class User3Controller{
private static final Log logger = LogFactory.getLog(User3Controller.class);
@ModelAttribute
public void userModel3(String loginname,String password,ModelAndView mv){
logger.info("userModel3");
User user = new User();
user.setLoginname(loginname);
user.setPassword(password);
mv.addObject("user",user);
}
@RequestMapping("/login3")
public ModelAndView login3(ModelAndView mv){
logger.info("login3");
User user = (User) mv.getModel().get("user");
System.out.println(user);
user.setUsername("测试");
mv.setViewName("result3");
return mv;
}
}
@RequestMapping("/login")
public ModelAndView login(
@RequestParam("loginname") String loginname;
@RequestParam("password") String password;){
return...
}
@Controller
@SessionAttribute("user")
public class SessionAttributesController{
private static final Log logger = LogFactory.getLog(SesssionAttributesController.class);
@RequestMapping("/{formname}")
public String loginForm(@PathVariable String formName){
return formName;
}
@RequestMapping("/login")
public String login(
@RequestParam("loginname") String loginname,
@RequestParam("password") String password,
Model model){
User user = new User();
user.setLoginname(loginname);
user.setPassword(password);
user.setUsername(admin);
model.addAttribute("user",user);
return "welcome";
}
}
@Controller
public class ModelAttribute1Controller{
@ModelAttribute("loginname")
public String userModel1(
@RequestParam("loginname") String loginname){
return loginname;
}
@RequestMapping("/login1")
public String login1(){
return "result1";
}
}
2,@ModelAttribute注解void返回值的方法,相对于上一个而言,这个的注解的特点在于他提供了一个容器来存储模型数据,而且还允许存储多个模型数据;上代码;
@Controller
public class ModelAttribute2Controller{
@ModelAttribute
publicv void userModel2(
@RequestParam("loginname") Stirng loginname,
@RequestParam("password") String password,
Model model){
model.addAttribute("loginname",loginname);
model.addAttribute("password",password);
}
@RequestMapping("/login2")
public String login2(){
return "result2";
}
}
@Controller
public User userModel3(
@RequestParam("loginname") String loginname,
@RequestParam("password") String password){
return find(loginname,password);
}
@RequestMapping("/login3")
public String login3{
return "result3";
}
4,@ModelAttribute和@RequestMapping同时注释一个方法;这个时候就会有一个骚操作,这个时候方法里面返回的值就不再是视图名称了,而是model属性的值了,虽然我不知道这个有什么用。。。反正就是骚操作。。。
@Controller
public class ModelAttribute4Controller{
@RequestMapping("/login4")
@ModelAttribute("username")
public String login4(){
return "admin";
}
}
5,@ModelAttribute 注释一个方法的参数,这个跟第三个有点像,我觉得不同之处可能在于封装在类里面的模型在下面的Controller中可以被再次设置和使用吧。。。
@Controller
public class ModelAttribute5Controller{
@ModelAttribute("user")
public User userModel5(
@RequestParam("loginname") String loginname,
@RequestParam("password") String password){
User user = new User();
user.setLoginname(loginname);
user.setPassword(password);
return user;
}
@RequestMapping(("/login5")
public String login5(@ModelAttribute("user") User user){
user.setUsername("管理员");
return "result5";
}
}
SpringMVC的常用注解的更多相关文章
- (三)SpringMVC之常用注解
SpringMVC的常用注解 注解 说明 @Controller 用于说明这个类是一个控制器 @RequestMapping 用于注释一个控制器类或者控制器类的方法 @RequestParam 用于将 ...
- springMvc之常用注解介绍
@requestbody和@requestparam的用法 获取请求参数的方法 get请求: 直接获取request 如: public String getHtml(HttpServletR ...
- SpringMVC相关常用注解
@Controller: @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象 @RequestMapping: RequestMappin ...
- Spring和SpringMVC的常用注解
Spring的部分: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component-scan base-package=" ...
- springMVC的常用注解有哪些?
1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象.分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否 ...
- springmvc:常用注解
一.RequestParam注解 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必须提供此参数.默认值:true.表示必 ...
- SpringMVC框架——常用注解
@RequestMapping Spring MVC 通过 @RequestMapping 注解将请求与业务方法进行映射,在方法定义处,在类定义都可以添加该注解. 常用参数: 1.value:指定请求 ...
- SpringMVC常用注解實例詳解3:@ResponseBody
我的開發環境框架: springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...
- SpringMVC常用注解實例詳解2:@ModelAttribute
我的開發環境框架: springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...
随机推荐
- 【转】awk数组操作
转自:http://blog.csdn.net/wangran51/article/details/9168361 用awk进行文本处理,少不了就是它的数组处理.那么awk数组有那些特点,一般常见运算 ...
- 【转】GPS网平差
进行GPS网平差的目的主要有三个: (1)消除由观测量和已知条件中存在的误差所引起的GPS网在几何上的不一致.包括闭合环闭合差不为0:复测基线较差不为0:通过由基线向量所形成的导线,将坐标由一个已知点 ...
- [python] 2、python使用pyaudio进行录音,及其在python虚拟环境virtualenv中安装遇到的问题
1.pyaudio安装大背景 最近在做智能音箱,需要编写声音拾取代码,我先是百度两篇比较常见的用python进行录音的操作的文章: python写一个录音小程序:http://blog.csdn.ne ...
- 基于 xorm 的服务端框架 XGoServer
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- Tomcat(五):nginx/httpd + tomcat及负载均衡tomcat
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 101490E Charles in Charge
题目连接 http://codeforces.com/gym/101490 题目大意 你有一张图,每两点之间有一定距离,计算出比最短路大x%之内的路径中最长边的最小值 分析 先跑一遍最短路,然后二分答 ...
- (三)surging 微服务框架使用系列之我的第一个服务(审计日志)
前言:前面准备了那么久的准备工作,现在终于可以开始构建我们自己的服务了.这篇博客就让我们一起构建自己的第一个服务---审计日志. 首先我们先创建两个项目,一个控制台的服务启动项目,一个业务的实现项目. ...
- [DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 满足和优化指标 Stisficing and optimizing metrics 有时候把你要考 ...
- 玩转webpack(二):webpack的核心对象
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者介绍:陈柏信,腾讯前端开发,目前主要负责手Q游戏中心业务开发,以及项目相关的技术升级.架构优化等工作. 前言 webpack 是一个强大的模 ...
- React原理探索- @providesModule 模块系统
@providesModule是什么 react抛出组件化的概念后,对于开发者而言,为了提高代码的可读性与结构性,通过文件目录结构去阐述组件嵌套关系无疑是一个很好的办法,但是目录级别的加深,同时让re ...