1.webwork使用技巧
2.Map request=(Map)ActionContext.getContext().get("request");
webwork使用技巧
在WebWork的学习中,虽然章节内容有限,但showcase项目是一个极好的演示资源,展示了WebWork的大部分功能。特别是对于初学者,反复研究这个项目将非常有益。九爱源码网 WebWork框架内置了多视图支持,包括Jsp、FreeMarker、Velocity、Jasper Reports和XSLT等,这种灵活性在敏捷项目中尤其体现价值。在实际项目中,视图技术的选择和转换是常见的,如从Jsp切换到FreeMarker。FreeMarker是官方推荐的视图技术,使用时首先需要搭建相应的环境,编写页面脚本,并在xwork.xml中通过Result的秒赞源码博客type参数进行配置。showcase项目中,展示了这些技术的使用实例。 数据验证是WebWork的另一个关键特性。可以在ActionClass-validation.xml文件、Action的validate方法和执行方法中实现验证,其中,validation拦截器提供了强大的支持,允许绑定多个验证文件,实现复杂的网络拍卖平台源码数据规则。WebWork内置了一些验证规则,也可自定义表达式进行验证。 类型转换是WebWork处理请求数据时需要注意的问题,尤其是处理集合和自定义类型时,需要在ClassName-conversion.properties文件中定义规则。Action可以有多个执行方法,如user!doAdd.action,Action链机制允许多个Action协作完成用户请求。 WebWork的wap威客源码多模块支持和权限管理是其组织大型项目的强大工具,通过xwork.xml的include标签、package和命名空间,可以实现灵活的模块划分和权限控制。doInput方法和prepare方法分别用于处理页面模板和初始化数据,而Model Driven模式则能简化表达式语言的使用。 最后,WebWork2.2.2引入的Quick Start特性,无需编译和打包,即可实时查看程序运行结果,对接平台注册源码大大提高了开发效率。只需在WebWork源码目录运行特定命令,即可在Quick Start模式下运行showcase项目。扩展资料
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架。WebWork目前最新版本是2.2.2,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。Map request=(Map)ActionContext.getContext().get("request");
我也正好在看这个,把我刚理解的给你说下吧,不一定对。
Map request=(Map)ActionContext.getContext().get("request");
Map request // 声明一个名字为request的Map对象(这个名字不是request也可以)
然后对request进行实例化,但是因为 ActionContext.getContext().get("request");不是Map类型的
所以前面需要加“(Map)”进行强制转换。
“ActionContext”是“xwork-core-2.2.3.jar”(反正就是Xwork了 也许咱们的版本不一样,有兴趣的话你可以去了解一下Xwork)下面的“com.opensymphony.xwork2.ActionContext;”包,
后面的.getContext().get("request");就都是ActionContext里面的方法(函数)了。
注意的是,“get("request");”括号里面的request不能变,这个request不是你前面声明的request对象,具体了解可以去上面说的包下面看源码,
本来想给你大概说下ActionContext的,但是我这代码关联不上,你自己去看吧。
据体用法的话,既然已经有request这个对象了,比如你可以在JSP页面中加
<%= request.getAttribute("list") %>看看效果。
或者假如你要希望数据库写数据,要用到”list“那么可以调用这个action中的这个reuest,
例如 Map m = action.request;
最后,就像J2SE中的Main()方法一样,这都是固定的,记住就可以了。至于用法那就多种多样,光说具体用法那就说死了,但事实是很灵活的东西,看需求吧。
两年后再补充一点吧,ActionContext对象里面封装了Action用到的一些数据。另外struts2把我们的request对象做了一些修改,重新封装成它自己需要的并放在了ActionContext对象中。