SpringMvc 单例
struts2的controller是多例,是因为其中有modeldriven将比如user 或者其他属性暴露出来,接受属性,特别是继承了actionsupport之后,fielderror的属性也会设置进来,如果是单例,就会出错。
springmvc 是在方法中加入Model或者Map(不常用)参数,用model.addAttribute()的方法来加入键值对,在页面用EL表达式即可取到值。个人觉得这个是存到了request对象里面去。
但是,注意的是,如果你没有在方法参数中,设置一个局部变量的名字和要传进来的属性的名字相同,那么这个属性就没办法传进来
解决方法是:在get方法中,传一个new User进去,在post方法中用这个User user作为接受值的容器,然后传过来的post方法的modelattribute设置为"user",因为springmvc的addattribute方法的默认的值是你设置进去的单参数,(双参数那就不说了),然后key就是这个参数的类的字符串,比如User就是user,“sss”就是String。所以modelattribute设置为user,那么post方法一执行,就会去找model中的user对象,找到之后,就把输入的值传给这个对象,把这个user对象传递给方法参数,从而得到传值的目的。
springmvc验证:validate的jsr303的方法,在User的属性上加入注解,会通过反射的方式检测,在post方法接受这个user的的时候@validate一下然后属性中再加BindingResult br,在方法开始写if(br.hasErrors),return get方法之前的页面就可以得到错误信息,不过这个好像是用js验证更方便?还没看到这里。
struts2的验证是:比如add方法要验证,先继承actionsupport类,再写个validateAdd方法,里面判断modeldriven的属性中的值符不符合标准,如果不符合就往fielderror中加入一个键值对,键最好是跟属性名一样当执行add方法的时候,就会先验证fielderror里面有没有值,有值就说明有错误,那么就会返回提交表单页面,在这个页面中在struts2标签的帮助下,<s:fielderror>标志得到错误信息。
SpringMvc 单例的更多相关文章
- springmvc单例
默认情况下springmvc都是单例的,用@Controller注解的web页面,下次请求时,可以拿到controller成员变量的上次运行的信息. 比如:controller类里面有: Linked ...
- struts2,servlet和springmvc的单例多例问题
struts2,servlet和springmvc的单例多例问题 原创 2017年06月12日 09:59:21 标签: struts2 / servlet / springmvc / 单例 / 多例 ...
- SpringMVC Controller单例和多例
对于SpringMVC Controller单例和多例,下面举了个例子说明下. 第一次:类是多例,一个普通属性和一个静态属性. 结果:普通属性:0.............静态属性:0 普通属性:0. ...
- SpringMVC Controller 单例 多例
对于SpringMVC 的Controller单例还是多例.下面举例说明:第一次:类是多例,类里包含一个普通属性,一个静态属性 结果:普通属性:0.............静态属性:0 普通属性:0. ...
- SpringMVC学习笔记:单例与并发问题
Spring中的Bean默认都是单例(singleton),Spring中Bean的scope属性有五种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时 ...
- SpringMVC中的Controller默认单例
众所周知,Servlet是单例的. 在struts中,Action是多例的,每一个请求都会new出来一个action来处理. 在Spring中,Controller默认是单例的,多个请求都会访问同一个 ...
- Struts2和SpringMVC的action是单例还是原型的?
struts2的acion单独使用的时候应是多例的,也就是原型(prototype). 因为它是基于类开发的,它的三种获取页面传参的方式都是通过成员变量的方式来接受的. 如果用struts2框架基于方 ...
- springmvc控制器controller单例问题
springmvc controller默认的是单例singleton的,具体可以查看注解scope可以一目了然. 单例的原因有二: 1.为了性能. 2.不需要多例. 1.这个不用废话了,单例不用每次 ...
- spring和springmvc是单例还是多例
这么说其实不规范 spring的bean 默认是单例 springmvc的controller 默认是单例 所以最好不要在controller里定义成员变量 都可通过注解 @scope=p ...
随机推荐
- C# Web中Session的使用
1. 关于使用之前要注意的: 在使用session之前,一定要注意继承自System.Web.UI.Page,或在使用session时加上System.Web.HttpContext.Current: ...
- ios开发者证书 签发者无效
2月14日以后,由于苹果更新安全证书:会导致本机制作的所有开发者证书无效: 钥匙串里的开发者证书无法使用 解决方式: 重新下载苹果公司的安全证书,并安装 1: 先在钥匙串里搜索到老的证书,如果有,请先 ...
- xcode6 devices,profiles 以及 iOS8 设备 查看profiles
xcode6 devices,profiles 以及 iOS8 设备 查看profiles 1. xocde6 devices 不在 window----Organizer 下面了: 改为 Windo ...
- 移动端的touch事件处理
简要的探讨一下移动端 touch 事件处理几个坑,以及相应的简单处理方法. click 穿透 假设有个弹出层,上面有个关闭的按钮支持 touchend 触发后关闭,若正好下方有个元素支持 click ...
- robotframework笔记4
机器人框架概述 机器人框架是一个通用的开源的自动化测试框架 验收测试和验收测试驱动开发(ATDD).它具有易于使用的表格的测试数据 语法采用关键字驱动 测试方法.其检测能力可以通过测试库 用Pyt ...
- (09)odoo工作流
--------------修订时间14:54 2016-09-18 星期日21:59 2016-06-12 星期日10:06 2016-02-24 星期三17:14 2016-01-29 星期五-- ...
- JAVA_安装JDK和Eclipse
大二开始前,找的是学长帮忙直接安装的,这个寒假抽空体验重装系统,同时,体验安装JDK和Eclipse.O(∩_∩)O 1.jdk 1)官方网址(下载JDK) http://www.oracle.c ...
- CSS3 Media Queries
Media Queries直译过来就是“媒体查询”,在我们平时的Web页面中head部分常看到这样的一段代码: <link href="css/reset.css" rel= ...
- Angularjs学习——(一)
去年就接触过AngularJS吧,只可惜那时候仅仅是跟着“老大”机械的完成了“饿了么”——一个单页面的手机App,而其中的什么原理,怎样来实现,自己也是似懂非懂,直至今天自己再次拿起来它,并一个人来研 ...
- 【转】数据库范式(1NF 2NF 3NF BCNF)详解二
以下内容转自:http://jacki6.iteye.com/blog/774889 -------------------------分割线----------------------------- ...