Code Bye

SSH框架中,action中的属性是怎样取到前画面值的?

 

如题。
SSH框架中,action中的属性是怎样取到前画面值的?

把数据实体存在session或request中,页面可以通过EL获取
可以单个值传递,也可以对象传递,在action里面有getset方法,只要表单提交,后台就能拿到值
对象传的时候控件的name属性xxxModel.name这种形式
就是用.回去
你得放到request 或者session 中取数据。
前台到后台的话,如果你前台传过来的值与后台接受的对象一致,则struts可以自动封装成对象,而后台的值到前台的话,就需要借助作用域或者是值栈了。
你回答的就是我想问的,可否细讲一下?为什么会封装成对象,什么时候封装?为何用getter setter方法能取得属性的值?

20分
引用 6 楼 fanghui88 的回复:

你回答的就是我想问的,可否细讲一下?为什么会封装成对象,什么时候封装?为何用getter setter方法能取得属性的值?

我个人的理解:其实Struts2本质上就是实现了对servlet的封装吧,getter就相当于struts2中封装了request.getParameter(“XXX”),具体你要去看Struts2的源代码了,请求或响应时,通过struts2的默认拦截器来求值或赋值。

这个就要使用模型驱动了,这个表单提交经常用到,如果触及到回显,这要么使用值栈,要么使用域对象+EL表达式
strus2封装了底层的servlet请求,set方法会讲页面上的值set到你在action中定义的属性中去
很久之前用过Struts2,好像有一个对象模型的,这玩意儿挺麻烦的。对象模型好像需要在配置中启用还是怎么样,忘了,你的form也要有相应设置,如student 这个对象,有name和Score两个属性,在表单相应的input(假如都是input)的name上,需要写成student.name, student.score, 这样提交的话,你在后端,直接以student对象接收就行了,这些属性stuts2已经帮你封装好了。当时用得挺别扭的,没有springMVC好用。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明SSH框架中,action中的属性是怎样取到前画面值的?