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 单例的更多相关文章

  1. springmvc单例

    默认情况下springmvc都是单例的,用@Controller注解的web页面,下次请求时,可以拿到controller成员变量的上次运行的信息. 比如:controller类里面有: Linked ...

  2. struts2,servlet和springmvc的单例多例问题

    struts2,servlet和springmvc的单例多例问题 原创 2017年06月12日 09:59:21 标签: struts2 / servlet / springmvc / 单例 / 多例 ...

  3. SpringMVC Controller单例和多例

    对于SpringMVC Controller单例和多例,下面举了个例子说明下. 第一次:类是多例,一个普通属性和一个静态属性. 结果:普通属性:0.............静态属性:0 普通属性:0. ...

  4. SpringMVC Controller 单例 多例

    对于SpringMVC 的Controller单例还是多例.下面举例说明:第一次:类是多例,类里包含一个普通属性,一个静态属性 结果:普通属性:0.............静态属性:0 普通属性:0. ...

  5. SpringMVC学习笔记:单例与并发问题

    Spring中的Bean默认都是单例(singleton),Spring中Bean的scope属性有五种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时 ...

  6. SpringMVC中的Controller默认单例

    众所周知,Servlet是单例的. 在struts中,Action是多例的,每一个请求都会new出来一个action来处理. 在Spring中,Controller默认是单例的,多个请求都会访问同一个 ...

  7. Struts2和SpringMVC的action是单例还是原型的?

    struts2的acion单独使用的时候应是多例的,也就是原型(prototype). 因为它是基于类开发的,它的三种获取页面传参的方式都是通过成员变量的方式来接受的. 如果用struts2框架基于方 ...

  8. springmvc控制器controller单例问题

    springmvc controller默认的是单例singleton的,具体可以查看注解scope可以一目了然. 单例的原因有二: 1.为了性能. 2.不需要多例. 1.这个不用废话了,单例不用每次 ...

  9. spring和springmvc是单例还是多例

    这么说其实不规范 spring的bean    默认是单例 springmvc的controller    默认是单例 所以最好不要在controller里定义成员变量 都可通过注解 @scope=p ...

随机推荐

  1. 使用fragmenttabhost后,子fragment怎么获取ID?怎么用getSharedPreferences

    使用fragmenttabhost后,子fragment怎么获取ID?怎么用getSharedPreferences public View onCreateView(LayoutInflater i ...

  2. testng标签运行顺序

    testng的annotations运行顺序为: @BeforeSuite @BeforeTest @BeforeClass @BeforeMethod @AfterMethod @AfterClas ...

  3. apk瘦身(包大小优化)

    最近太忙好久没有写随笔,放假才有空写写随笔. 最近在项目中一直在做包大小优化 随着业务需求的增加,包大小是忍不住的往上涨 为了提高应用市场下载转化率,一直在优化包大小 首先 分析你的apk中占比的主要 ...

  4. 微信JS SDK Demo 官方案例

    微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享 ...

  5. CentOS下更新python版本

    执行#Python或#python -V或#python --version,看到版本号是2.7.5,到官网https://www.python.org/ftp/python/查看了下最新版本都到了2 ...

  6. hdu----(2084)数塔(dp)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  7. hdu----(5056)Boring count(贪心)

    Boring count Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  8. cycleInterpolator 循环加速器

    CycleInterpolator Repeats the animation for a specified number of cycles. The rate of change follows ...

  9. 位运算取第一个非0的位 r & (~(r-1))

    Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...

  10. java使用dom4j解析xml文件

    关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...