一款软件,无在乎对数据的处理。而B/S软件,一般都是用户通过浏览器客户端输入数据,传递到服务器,服务器进行相关处理,然后返回到指定的页面,进行相关显示,完成相关功能。这篇博客重点简述一下Struts2框架是如何进行数据流转处理呢!
一,首先学习一种表达式:OGNL:Object-Graph NavigationLanguage(对象图形导航语言)
将多个对象的关系使用一种树形的结构展现出来,更像一个图形,那么如果需要对树形结构的节点数据进行操作,那么可以使用【对象.属性】的方式进行操作。 这种操作的方式类似于EL表达式语言的操作方式。底层都是采用反射实现的。
而框架对数据的流转,主要使用了OGNL语言和值栈(先进后出的数据结构)来完成的。这里看网上的一篇详细的文章:Struts2深入学习:OGNL表达式原理
二,数据的提交方式:
a.通过<form>表单的方式
b.通过url的方式
http://www.ljh.com/user/login_Login.action?usercode=admin&userpswd=admin
c.通过链接的方式
<ahref="/user/delete.action?usercode=admin">删除</a>
d.异步js提交请求
三,数据存储:数据的存储依赖于框架提供的拦截器功能,拦截器可以对请求进行拦截,进行逻辑处理:获取所有的请求参数,循环遍历设置到值栈中。框架默认将被请求的Action对象存放到值栈的栈顶。如何向栈顶的action存储数据呢?三种方法:
1,属性驱动模式(属性很多时,不建议使用。)
action编写方式:Action中需要提供参数名称的set方法,框架会通过拦截器将请求参数获取到之后,
会循环遍历将参数设置到值栈(栈顶对象)中。
jsp传输数据方式:<