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 ...
随机推荐
- 用CSS写气泡
新学到的一个小效果 用CSS实现如下图效果,其中demo结构为:<div id="square"></div> 实现这个效果需要用到两个知识点: 1.用bo ...
- scala 小结(一)
Scala 是什么?(What is scala?) 引用百度百科对于scala的定义: Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编 ...
- spring-boot 使用 main函数 无法启动的问题完美 解决方案。
首先 是启动之后 ,直接回exit code 0,网址 里面输入localhost:8080显示站点未启动.网上查 了多种 方式 ,日志 也 打了,都没发现问题,最后到这篇文章里 找到了答案.但是这 ...
- WPF中,多key值绑定问题,一个key绑定一个界面上的对象
问题说明: 当用到dictionary<key,value>来储存数据的时候,有时候需要在界面上绑定一个key来显示value,这时候有两种思路: 一种是写一个自定义的扩展类,类似Bind ...
- BZOJ 4216: Pig [分块]
传送门 询问区间和...内存3M 分块前缀和... 我连swap都是这么l=l^r , r=l^r , l=l^r写的.... #include <cstdio> typedef long ...
- POJ Building roads [二分答案 2SAT]
睡觉啦 #include <iostream> #include <cstdio> #include <cstring> #include <algorith ...
- [Python Study Notes]字符串操作
字符串操作 a.字符串格式化输出 name = "liu" print "i am %s " % name #输出: i am liu PS: 字符 ...
- 浅讲JUnit
JUnit单元简介: JUnit ----是一个开发源码的java测试框架,用于编写和运行可重复的测试,它是用于单元测试框架体系xUnit的一个实例, 用于java语言,主要用于白盒测试,回 ...
- redis —主从&&集群(CLUSTER)
REDIS主从配置 为了节省资源,本实验在一台机器进行.即,在一台机器上启动两个端口,模拟两台机器. 机器准备: [root@adailinux ~]# cp /etc/redis.conf /etc ...
- Go学习笔记02-源码
第二部分 源码 基于 Go 1.4,相关文件位于 src/runtime 目录.文章忽略了 32bit 代码,有兴趣的可自行查看源码文件.为便于阅读,示例代码做过裁剪. 1. Memory Alloc ...