springMVC的问题

吕檀溪 发布于 2014/01/03 13:37
阅读 1K+
收藏 1
在struts2中,在action中的属性只要提供了get和set方法,在页面中都可以使用已而表达式获取。为什么在springMVC做不到呢?我也想实现这个问题应该怎么去设置呢?
加载中
0
一路找北

springmvc的数据绑定是在Controller类的方法参数里对应写上就可以了,连getter,setter都不用写,也很方便。用成员变量绑定也得从线程方面考虑。struts2的Action类都是prototype的,用属性绑定参数不会出问题。SpringMVC的Controller类不加scope=prorotype的话默认是spring管理的singleton,一般也不加的,用成员变量绑定参数必然会有多线程参数绑定混乱的问题。

吕檀溪
吕檀溪
回复 @cgcgbcbc : 这个没用过哟。很多地方都不是很了解
cgcgbcbc
cgcgbcbc
回复 @吕檀溪 : model.setAttribute呢?
吕檀溪
吕檀溪
那要怎么做呢?不这样写request.setAttribute("all", list);在页面用${}去拿都会是NULL。我不想setAttribute
Gillian_Male
Gillian_Male
回复 @吕檀溪 : 不是的吧
吕檀溪
吕檀溪
那是不是非得使用request.setAttribute才能在页面上取值呀?
1
huan
huan
做法不一样而已。为什么一定要用struts的方式呢?spring mvc 的数据绑定方式也很灵活方便的。
1
Most_Gust
Most_Gust
springMVC只需要在control的方法里面用上和属性名字一样的参数就可以了
1
SilenceSu
SilenceSu

struts2 继承  implements ModelDriven<T> 、

springmvc 直接使用就好了

1
戴威
戴威
建议看看官方文档和例子
1
无痕的旋律
无痕的旋律
因为不一样,struts2每次请求一个action实例,spring mvc 一个controller 对应所有的请求,所以controller是无状态的,无状态就是说不会记录用户提交的数据。因为所有的人都要用这个controller 所以它不能像struts2那样用对象的属性来保存用户的数据。你可以将对象放到modelmap里面去,放到modelmap里面去的对象,会在resolver view的时候一起放到request里面,你在前台直接用EL表达式取就可以了。至于你说的request.setAttribute 很少有人会那样做,你在你的controller方法里面声名一个 Model类型的参数 然后把数据放到这个model里面就可以了,页面自然可以取到。你可以看看它的源码,个人认为spring mvc的代码很不错,而且可定制化程度远高于struts2。阅读一下源码,就会明白他们的区别了
1
无痕的旋律
无痕的旋律
action 每次请求一个Action实例,controller 只有一个实例,所有请求都用它。
1
hotkit
hotkit

http://www.iteye.com/topic/1123319

http://blog.csdn.net/jacman/article/details/8601410


spring mvc 自动注入请求参数到BEAN 见上面的文章


controller方法参数中的对象和model可以直接在JSP页面使用

1
_金角大王_
_金角大王_
有一个默认参数 Model 它类似于request.setAttribute
吕檀溪
吕檀溪
那要怎么书写呢
1
quyf
quyf
好好学习下 spring mvc吧 ,配置什么的都比 struts简单多了,用起来也很方便,
返回顶部
顶部