struts框架Jsp与Action的交互总结
一.Jsp→Action
jsp传值
- form表单
- url
action接收
- request.getParameter(“param”)
- setter :action自动接收
- 直接传属性(uname、umima)
- 封装类(user[uname、umima])
- Action类实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法 .
二.Action→Jsp
值栈原理ValueStack
ValueStack贯穿整个Action的生命周期(每个Action类的对象实例都拥有一个ValueStack对象),即用户每次访问struts的action,都会创建一个Action对象、值栈对象、ActionContext对象,然后把Action对象放入值栈中;最后再把值栈对象放入request中,传入jsp页面。相当于一个数据的中转站,在其中保存当前Action对象和其他相关对象 .
- 对象栈(getter)
- map栈(context map)
- ActionContext
- key -value
- request-requestmap
- session-sessionmap
- application- applicationmap
- paramters-hashmap(请求参数)
jsp访问方式:ognl或el
- ognl:对象栈直接访问属性(本质也是通过getter方法访问,所以直接getXX()也可以访问),map栈加#
- el:${}