-
WebWork认识
2008-10-20
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://xiaobaihome.blogbus.com/logs/30447293.html
WebWork心得体会
WebWork将Action和Web通过配置文件解藕,这里主要是通过拦截器实现的。
Web开发主要是页面与后台互相传值。
一、这里Web页面是如何实现从后台获取数据的那?
1、首先利用WebWork标签实现,WebWork标签的value属性。当执行这个标签的时候他会找到相应
的java标签类,如果标签类会去OgnlValueStack里查找这个表达式值所对应的操作也就是相应的Get*()方法。
将取得的数据输入Web界面.
2、注意,这里的OgnlValueStack是个栈,里面压入的对应Action中的java属性,所以如果你向让这个
属性被Web页面得到的话,必须包含get*()方法才可以。
3、过程可参考 (Web页面区Action中数据的过程图例.bmp)
二、Action如何从Web页面
1、页面往Action里送值有三种,在普通的Servlet中。一是通过提交表单可以输送大量数据;
二是通过地址栏中传参的形式;三是通过内置对象*.setAttribute(),向后台送数据。
2、WebWork框架如果向送数据的话,必须在Action内安装拦截器(xwork.xml中配置),它能够将
HTML标签中的name属性的值,设置到对应的模型当中去,当然这里少不了OgnlValueStack栈的作用,后台就能从
对应的模型中取得数据使用了。
*******************************************************************
3、在后台接收地址栏参数的方法是??????????
*******************************************************************
答:WebWork将我们在后台成用过的request.getParameter()也进行的处理,可以将前台传来的参数,使用拦截器框 架自动调用一些get()和set()方法设置到对应的设置到Action的属性中。
三、在实际应用过程中,必然会有很多东西是WebWork框架不能够协助我们完成的,这时候就需要得到原始的 Servlet的一些对象,如何得到它们那?WebWork为我们提供了一个ActionContext(Action上下文)可以做到!
ActionContext context = ActionContext.getContext();
Map params = context.getParameters();
String[] username = (String[]) params.get(“username”);
注:username是一个数组。这里得到的是Action上下文,都是一些经过封装的了的Servlet对象,所以会出现params
是一个Map对象,同样的事情也发生在session等其它对象里。
真正的底层对象要ServletActionContext得到,它继承自ActionContext
它可以取得:HttpServletRequest、HttpServletResponse、ServletContext、ServletConfig、PageContext对象。
ServletActionContext和ActionContext有着一些重复的功能,在我们的Action中,该如何去抉择呢?我们遵循的原 则是:如果ActionContext能够实现我们的功能,那最好就不要使用ServletActionContext,让我们的Action尽量不 要直接去访问JavaServlet的相关对象。在使用ActionContext时有一点要注意:不要在Action的构造函数里使用 ActionContext.getContext(),因为这个时候ActionContext里的一些值也许没有设置,这时通过ActionContext取得 的值也许是null。
通过以上,我们可以随心所欲的进行页面和java类之间传值,无比美妙~~~
四、对WebWork的调度ServletDispatcher的认识
首先它是默认的WebWork调度,它是一个Servlet这没什么疑问,假如要处理字符编码问题,可以继承他,并扩展它,
然后,在web.XML中将调度设为扩展后的Servlet。
随机文章:
任志强 我XXyoumather 2009-07-29选择排序 2009-01-05Flex学习笔记 2008-10-22什么是框架? 2008-10-16Struts原理与实践 1 2008-10-09
收藏到:Del.icio.us







