为要分配给bean字段的操作配置请求参数

时间:2014-01-17 11:16:04

标签: java struts2 ognl

我正在使用www.datatables.net。 JS框架在表中显示数据。它具有服务器模式,并在此模式下发送大量参数。

示例:sortColumnsortType(asc,desc),过滤值,pagenumitemsonpage等。

所以我在行动中处理它。我分配给每个请求param字段在行动,它工作正常。

但现在我有几张桌子。所以我必须采取不同的行动,但要求参数相同,并且有很多。将粘贴代码从一个动作复制到另一个动作不是一个好主意。

所以我确实实现了DatatableParamBean,其中包含正常工作所需的所有参数。

问题是params以这种方式发送iSortColumniDisplayTotalLengthiTotalItems等等 但我需要将它们分配给豆田。

bean.iSortColumn, bean.iDisplayTotalLength and so on.

考虑DatatableParamBean在我的动作类中引用为'bean';

如果有办法覆盖分配请求参数值的默认机制? 我现在找到的唯一解决方案是使用所有这些参数创建一个动作说DatatableAction类,如果需要处理数据,则创建一个新动作,使用从DatatableAction扩展

1 个答案:

答案 0 :(得分:1)

这是将bean关联或聚合到操作类的常用方法。可以通过具有属性访问器的名称直接使用操作类属性。通过指定适当的OGNL表达式(属性的路径),可以通过OGNL访问嵌套bean属性。假设所有属性访问器都没有null对bean的引用。这可以通过向属性提供相应的getter和setter以及必要时初始化bean引用来实现。因此,bean.iSortColumnbean.iDisplayTotalLength是有效的OGNL表达式,用于设置/获取bean属性。但是你需要在动作中初始化它。喜欢这个

private Bean bean = new Bean();

public Bean getBean() { return bean; }

<强>参考文献:

  • 要熟悉OGNL的工作原理,您可以阅读OGNL Basics
  • 基础OGNL参考,包括指向OGNL语言指南的链接。