struts2中关于前端和后台的数据交互

使用struts2框架时,要想将后台的数据传送到前端页面,可以在action中定义一个方法,如下图所示:


当然,使用struts2框架需要在struts.xml中配置,配置信息如下:

此处的<result name="success" type="json"></result>说明当action中定义的方法返回的是success,后台可以向前端传递一组json类型的数据,我们可以直接在前端使用ajax接收该组数据。还有一种情况,见下图:

此时我们返回的是一个name="airList"对应的页面,那么我们如何在前端接收到airdetecs中的数据呢
这里面又要分两种情况:
①如果是在html(即body)中接收,直接使用EL表达式即可
②如果是在<script>中,那么我们不能直接使用EL表达式进行接收,问题的核心在于${}之中的对象类型,如果是java对象 那当然取不到,如果是具体到字符串的值 那么只要加引号就能使用,所以, 后台可以在把java对象放进model之前,将java对象转化为json字符串,这样直接在js中定义一个对象,给他赋值为${}即可,参照上图,在方法中加JSONArray.fromObject()方法,将java对象转化为json字符串,这样在前端<script>代码中也可以直接用EL表达式进行接收(${}),此时我们只需要将数据打印到前端控制台,便可以.出相应的数据,加以使用。
接下来说说如何将前端的数据传递到后台,此项目中我在前端得到了多选框中的仓号数据,例如仓号分别为1、2、3、4、5、6,那么我们如何将这组数据传递到后台以供使用呢?有两种方法,第一种是将这个数据拼接成一个字符串,将这个字符串放到一个obj对象中,通过ajax将这个对象传递到后台,加上get、set方法即可,第二种是通过url,见下图 当请求showMoreDetails()方法时,即可将url中的4个参数传递到后台,此时我们为每个参数添加相应的get、set方法即可在后台取到值

最近在使用struts2做项目,从一个初学者开始,有问题欢迎讨论!

猜你喜欢

转载自blog.csdn.net/qq_31118837/article/details/81011435