2014-01-17 111 views
2

我正在使用www.datatables.net。 JS框架在表格中显示数据。它具有服务器模式,并在此模式下发送大量参数。配置要分配给bean域的动作的请求参数

示例:sortColumn,sortType(asc,desc),过滤值,pagenum,itemsonpage等等。

所以我处理它的行动。我分配给每个请求参数字段的行动,它工作正常。

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

因此,我确实实施了一个DatatableParamBean,其中包含正常工作所需的所有参数。

问题是PARAMS发送这样iSortColumniDisplayTotalLength,在 iTotalItems等等,但我需要他们被分配到豆田。

bean.iSortColumn, bean.iDisplayTotalLength and so on. 

请考虑DatatableParamBean在我的操作类中引用了'bean';

如果有一种方法可以覆盖分配请求参数值的默认机制吗? 唯一能做的我发现,现在是从DatatableAction

+0

不,ognl应该处理这些参数。 –

+0

感谢您清除此问题。 – simar

回答

1

创建一个动作说DatatableAction类这一切PARAMS,如果我需要处理dataatble创建一个新的动作,使用扩展这是关联或聚集一个bean通常的方式行动课。动作类属性可以直接使用具有属性访问器的名称。可以通过OGNL通过指定合适的OGNL表达式来访问嵌套的Bean属性,这是对属性的路径。假设所有属性访问器都没有null对bean的引用。这可以通过提供相应的getter和setter来实现,并在必要时初始化bean引用。因此,bean.iSortColumn,bean.iDisplayTotalLength是有效的OGNL表达式,用于设置/获取bean属性。但是你需要在动作中初始化它。像这样

private Bean bean = new Bean(); 

public Bean getBean() { return bean; } 

参考文献:

  • 要熟悉OGNL是如何工作的,你可以在阅读OGNL Basics
  • 基准OGNL参考文献包含OGNL语言指南的链接。
+0

实际问题出在另一边。我成功实施了使用行动领域作为参数,问题是,我无法改变来自js框架的参数,但现在我确实已经做到了。 datatable具有特殊的功能来覆盖参数名称。 – simar

+0

您可以使用两个附加选项:1)您可以实现'ModelDriven '; 2)使用'alias'拦截器。 –