`
isiqi
  • 浏览: 16710742 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

webwork中实现扩展用例方案1

阅读更多
背景:
产品一期已经上线,二期必然有很多改动,其中有一处是在原有工作流中引入新的工作流,说白了就是在原先做好某个页面上加入一块新的内容,通常你会去修改你的原先的 service使得其多返回一块数据,或者改变action的内容使其调用某个新的service(这样做不好),如果改变频繁,你会不断的修改以前的东西,其实完全可以拦截器来隔离关注点,这样的话你的修改不会干扰的以前的内容,如果你的修改的东西下一期又不要了,也不要紧,在配制文件中去掉这个拦截器就行了

废话说了一堆,进入实战,看看方案一
step 1)写ListTopVideosContributedIntercept类
public class ListTopVideosContributedIntercept implements Interceptor {
。。。。。。
public String intercept(ActionInvocation invocation) throws Exception {
// 获取service
TopVideosContributedBySelfService topVideosContributedBySelfService = (TopVideosContributedBySelfService) SpringBeanProxy
.getBean("topVideosContributedBySelfService");

// 获取形参1
HttpServletRequest request = ServletActionContext.getRequest();
String userNo = request.getParameter("userNo");

// 调用service
List list = topVideosContributedBySelfService.getTopnVideos(userNo);

// 结果放入值栈
OgnlValueStack stack = ServletActionContext.getContext()
.getValueStack();
stack.setValue("topVideosContributedList", list);

// 返回
return invocation.invoke();
}
。。。。。
}

step2)改变以前的action
加入以下内容:
private List topVideosContributedList;
/**
*
* @author weip
* @time 2006-6-8 9:56:08
* @return List
*/
public List getTopVideosContributedList() {
return topVideosContributedList;
}

/**
*
* @author weip
* @time 2006-6-8 9:56:12
* @param topVideosContributedList List
*/
public void setTopVideosContributedList(List topVideosContributedList) {
this.topVideosContributedList = topVideosContributedList;
}

主要是加入一个属性,以便注入数据

3)修改配置文件
<action name="tvuserinfo" class="moxtv.central.web.action.tvuserinfo.TVUserInfoAction">
<result name="success" type="freemarker">/cn/tvuserinfo/tvuserinfo.ftl</result>
<result name="error" type="freemarker">/cn/tvuserinfo/tvuserinfo_error.ftl</result>
<interceptor-ref name="defaultWebStack" />
<interceptor-ref name="listtopcontribitors" />
<interceptor-ref name="listtopvideoscontributed" />
</action>
加入红色的那一行

这样的话就直接通过拦截器实现了数据的表现,不会干扰以前的内容,有很好的即插即用效果,但有一点不好
需要改变原有的action以实现注入,虽然是很小的表现改动,但还是不爽,如何能做到更加完美的插件效果,看方案下集
分享到:
评论

相关推荐

    webwork源码底层实现

    1. **MVC模式**:WebWork基于MVC模式设计,它将应用程序的逻辑分为三部分:模型负责业务处理,视图负责数据展示,控制器负责接收请求并调用模型进行处理,最后更新视图。 2. **Action Mapping**:WebWork的核心是...

    webwork中文 webwork中文参考 webwork中文资料 webwork学习资料

    此外,`webwork-migration.jar`对于从1.x版本迁移到2.x版本非常有用,提供了必要的类文件和工具。 #### Action与ActionContext WebWork中的Action是处理客户端请求的关键组件,负责业务逻辑的执行。Action可以是...

    webwork

    总的来说,WebWork框架和Display Tag是Web开发中的两个重要工具,它们提供了高效、灵活的解决方案来构建动态Web应用。通过学习和研究这些源码,开发者不仅可以提升技能,还能为未来的项目选择和定制合适的工具。

    webwork中文文档

    WebWork是一个开源的Java Web应用开发框架,它在2000年初非常流行,是Struts框架的一个替代方案,尤其是在那些需要更灵活、更强大的MVC(Model-View-Controller)架构的应用场景中。 ### WebWork框架的核心概念 ...

    webwork中文帮助文档

    - WebWork支持多语言环境,允许开发人员轻松地实现应用的国际化。 - 通过资源文件管理不同语言的文本,根据用户设置或浏览器信息自动选择合适的语言。 6. **异常处理**: - WebWork提供了一套完善的异常处理机制...

    webwork中文参考手册

    8. **模板技术**:WebWork可以配合 Velocity 或 FreeMarker 等模板引擎,实现动态页面生成。 9. **测试支持**:WebWork提供了测试工具和API,方便进行单元测试和集成测试。 “webwork中文参考手册”很可能详细讲解...

    WebWork中文文档

    - **插件体系结构**:WebWork框架采用了插件体系结构,允许开发人员根据需要添加或替换功能模块,增强了框架的可扩展性。 ### WebWork框架的核心概念 在深入学习WebWork框架之前,了解其核心概念至关重要: - **...

    webwork-1.4-src.zip_webwork_webwork s_webwork.zip_webwork1.4.zip

    1. **MVC模式**:WebWork1.4遵循MVC架构,将应用程序分为模型、视图和控制器三个部分,提高了代码的可维护性和可扩展性。模型负责业务逻辑,视图负责数据显示,控制器则协调模型和视图的交互。 2. **动作映射**:...

    webwork2.17中文使用手册

    webwork2.17中文使用手册

    webwork2中文教程

    如果你已经熟悉了Struts,那么学习WebWork2将会是一个很好的提升,因为它可以帮助你更好地理解MVC模式,并且在实际开发中实现更加灵活和高效的编程。无论你是初学者还是有经验的开发者,本教程都将是你探索WebWork2...

    webwork2中文文档

    5. **拦截器(Interceptor)**:详述拦截器的概念,它是WebWork2中实现AOP(Aspect-Oriented Programming)的关键。解释如何创建自定义拦截器来添加额外的功能,如日志、权限控制、性能监控等。 6. **异常处理**:...

    webwork中上传文件

    在本例中,我们关注的是使用WebWork框架在Java环境中实现文件上传。WebWork是一个轻量级的MVC(Model-View-Controller)框架,它提供了处理HTTP请求和响应的强大工具,包括文件上传。 首先,我们需要了解WebWork的...

    webwork类型转换入门一

    WebWork是一个基于Java的开源MVC(模型-视图-控制器)框架,它在早期的Web开发中被广泛使用,特别是在Struts1之后,作为替代方案出现。本篇将介绍WebWork的基础知识,特别是它的类型转换机制,这对于理解Web应用程序...

    WebWork深入浅出.doc

    基于三层架构的Web层需要解决十个关键问题,WebWork提供了相应的解决方案: 1. 数据输入:WebWork通过请求参数绑定技术获取HTTP数据,并自动将字符数据转换为模型对象。 2. 输入验证:利用内置的验证机制,可以对...

    WEBWORK

    WebWork 是一个基于 Java 的开源 MVC(Model-View-Controller)框架,它在早期的 Web 应用开发中非常流行,尤其是在 Struts 1 之前。WebWork 提供了强大的动作(Action)处理、类型转换、拦截器(Interceptor)机制...

    webWork

    1. Action:WebWork中的核心组件,负责处理用户请求并执行相应的业务逻辑。Action类通常继承自WebWork提供的基类,并包含一系列方法,每个方法对应一个用户操作。 2. Interceptors(拦截器):在Action执行前后运行...

    fileupload+dwr2+webwork2实现带进度条上传文件

    这个技术组合在过去的Web应用中非常流行,但现在随着前端技术的发展,例如使用Fetch API和Web Workers,这种实现方式可能已经被现代的解决方案所取代,但了解这些基础知识对于理解Web应用的架构和功能仍然是有价值的...

    webwork中所有辅助的包

    4. **Ognl(Object-Graph Navigation Language)**: OGNL是一种强大的表达式语言,用于在WebWork中实现对象属性的访问和操作。它可以用来动态地设置和获取对象属性,甚至可以进行复杂的计算和控制流程。 5. **结果...

Global site tag (gtag.js) - Google Analytics