前面所有的页面跳转都是仅仅页面跳转,没有数据传入。这篇文章就谈谈如何从后端写数据进前端。
新建学生类(Student) 属性有id name age address(地址类)
新建地址类(Address) 属性有homeAddress(家庭地址) schoolAddress(学校地址)
写前端jsp页面
注意:name=“ xxx”中的xxx必须和Student类中属性保持一致
控制器方法
测试,跳转成功,控制台打印学生信息
上述是把一个实体类对象作为参数传递了,不再是之前的一个字符串,一个数字等。但是可以发现,这还是从前端传数据到后端(这是一个补充)。
接下来,就介绍下SpringMVC中处理模型数据(视图+数据)的几种方法:
ModelAndView、ModelMap、Map、Model -数据放在了request作用域
控制器中方法
以上4中方法不仅返回了页面同时还将数据放入了request作用域。前端若想用到该数据从request中拿即可。
下面看看前端能否拿到(EL,JSTL JAVA代码方式)。以下只选择EL方式拿数据。三种方式详见下篇EL和JSTL的简单使用
测试,页面跳转,页面显示传入的数据
其余三种请求一样可以,这里不做截图。
以上就是把写入的数据放入request作用域之中了。那么怎么放入session作用域呢?
@sessionattributes注解应用到Controller上面,可以将Model中的属性同步到session当中。
@SessionAttributes(“student”)//如果要在request作用域中放入student对象,则同时把该对象放入session作用域中。
如此,在student放入request作用域时也被放入了session作用域
测试
仔细查看@sessionattributes的属性
name和value等价,我们看看types属性
@SessionAttributes(types={Student.class,Address.class})//如果要在request作用域中放入Student类对象以及Address类对象,则同时把该类型全部对象放入session作用域中。
才疏学浅之处,切莫在意。
——2019.6.5 上午