springmvc传值方法
2014-10-28 17:06
387 查看
上面学习了如何通过url地址栏传参数给controller,那么接下来,学习下controller如何将传递给view。1、在WelcomController类中的创建如下方法:@RequestMapping(value={"/","/welcom"})
public String welcome(@RequestParam("username") String username,Map<String ,String> context){
context.put("username", username);
System.out.println("接收传入的参数 username: "+username);
return "welcome";
}此时项目目录如图:
2、在jsp页面输入如下代码:
3、在地址栏中输入请求路径及参数,得到结果,如下图所示:
从操作实例上不难看出,直接使用map就可以传值。但是在spring的官网上,明确给出不建议使用map传值。4、第二种传值方式Model(Spring建议使用的方式)/**
*
* @description: 使用model进行传值
* @param username 接收的参数
* @param model 存储值
* @return
*
*/
@RequestMapping("/welcome")
public String welcome(String username,Model model){
model.addAttribute("username",username);//存储值
return "welcome";
}
在地址栏中输入请求路径及参数,得到结果如下图:
使用上面的方法传值与使用map的效果是一样儿的。很方便。5、与structs2传值方式相比在structs2中,要想传值(username),我们要这样儿写:private String username;//setter ,getter方法用这种方法传值最大的问题就是:如果controller是单例的,则第一个请求未处理完成时,第二个请求到来,username的值还是第一个请求时的值,所以struts2要在action上设置scope参数。spring mvc就不存在这个问题。而且spring mvc中的controller是单例的,执行效率相对于structs2也要高。6、关于model传值中的一个需要注意的地方:model.addAttribute(username);上面的这种情况就是:在传值的时候没有key,那么它的key究竟是什么呢?在spring文档中,明确指出,如果不指定key,则默认使用对象的类型(是类型)做为key。@RequestMapping("/welcome")
public String welcome(String username,Model model){
model.addAttribute("username",username);
//此时默认使用对象的类型作为key-->model.addAttribute("string",username)
model.addAttribute(username);
return "welcome";
}7、在welcome.jsp页面中输入如下代码:
8、输出结果如下图所示:
public String welcome(@RequestParam("username") String username,Map<String ,String> context){
context.put("username", username);
System.out.println("接收传入的参数 username: "+username);
return "welcome";
}此时项目目录如图:
2、在jsp页面输入如下代码:
3、在地址栏中输入请求路径及参数,得到结果,如下图所示:
从操作实例上不难看出,直接使用map就可以传值。但是在spring的官网上,明确给出不建议使用map传值。4、第二种传值方式Model(Spring建议使用的方式)/**
*
* @description: 使用model进行传值
* @param username 接收的参数
* @param model 存储值
* @return
*
*/
@RequestMapping("/welcome")
public String welcome(String username,Model model){
model.addAttribute("username",username);//存储值
return "welcome";
}
在地址栏中输入请求路径及参数,得到结果如下图:
使用上面的方法传值与使用map的效果是一样儿的。很方便。5、与structs2传值方式相比在structs2中,要想传值(username),我们要这样儿写:private String username;//setter ,getter方法用这种方法传值最大的问题就是:如果controller是单例的,则第一个请求未处理完成时,第二个请求到来,username的值还是第一个请求时的值,所以struts2要在action上设置scope参数。spring mvc就不存在这个问题。而且spring mvc中的controller是单例的,执行效率相对于structs2也要高。6、关于model传值中的一个需要注意的地方:model.addAttribute(username);上面的这种情况就是:在传值的时候没有key,那么它的key究竟是什么呢?在spring文档中,明确指出,如果不指定key,则默认使用对象的类型(是类型)做为key。@RequestMapping("/welcome")
public String welcome(String username,Model model){
model.addAttribute("username",username);
//此时默认使用对象的类型作为key-->model.addAttribute("string",username)
model.addAttribute(username);
return "welcome";
}7、在welcome.jsp页面中输入如下代码:
8、输出结果如下图所示:
相关文章推荐
- springmvc中获取request对象,加载biz(service)的方法
- springmvc中获得HttpServletRequest request方法
- SpringMVC中对静态资源访问处理方法
- springmvc 多方法访问
- 显示详尽的SpringMVC异常信息方法
- SpringMvc处理方法返回值
- 资源静态SpringMVC中对静态资源访问处理方法
- Controller 方法签名(方法入参)介绍 springmvc
- springmvc 多方法访问
- Springmvc与jasperreport结合生成报表的一种方法 4000
- springmvc中获得HttpServletRequest request方法(org.springframework.web.context.request.RequestContextList)
- 终于找到全annotation配置springMVC的方法了(事务不失效)
- springmvc统一的异常处理方法
- springmvc 拦截器 怎么获取方法的参数值(3.0.5以上的版本有 HandlerMethod)
- SpringMVC 实现根据不同的请求类型(请求方法method=GetOrPost)分别响应
- 基于springMVC(2.5)的文件上传方法
- SpringMVC中Controller跳转到另一个Controller方法
- Springmvc保存时间的时候报转换类型错误解决方法
- springmvc下servlet怎么获取service及调用service的方法(备忘)
- springmvc 一个url请求,多次进入controller 解决方法