单纯的jsp开发的时候,业务数据的处理都在页面上完成。
用了mvc框架后,业务数据的处理在action里面,jsp页面只负责展示业务数据,那jsp页面是从什么地方获得业务数据的呢?
不好意思,没分了
Struts1.x没有研究过。对于Struts2,个人认为:
回答你的问题的关键词 是 OGNL。
Struts2中OGNL的上下文(Context)的实现就是ActionContext。
Struts2为每一次的http请求,创建一个ActinoContext。 你说说的JSP的数据,全在这个ActionContext中。
解析 EL表达式时,由于Struts2对HttpRequest对象进行了包装。会自动访问ActionContext的值。
解析 标签库时,有调用与标签相关的文件,来解析其中的名字,进而访问到ActionContext中的相应属性。
[b]
[color=blue]JSP从表单、URL参数中获取 业务数据[/color][/b]
主要是与action关联的Form
当然 lz也可以在action处理时在session request中存入一些东西
然后在jsp中使用request.getAttribute 之类的方法来获取
[color=blue]
[b]那是Struts2对HttpRequest对象进行了包装 所以你可以用EL表达式获得 HttpRequest中的参数,以及 XXAction中提供的Get方法的Field。[/b] [/color]
[b]Struts2的这部分源码很短,自己参考吧:
[color=blue]org.apache.struts2.dispatcher.StrutsRequestWrapper[/color][/b]