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

Java 为要分配给bean字段的操作配置请求参数,java,struts2,ognl,Java,Struts2,Ognl,我正在使用www.datatables.net。JS框架在表中显示数据。它有服务器模式,并在该模式下发送许多参数 示例:sortColumn,sortType(asc,desc),筛选值,pagenum,itemsonpage等等 所以我在行动中处理它。我将每个请求参数字段分配到操作中,它工作正常 但现在我有几张桌子。所以我必须做出不同的动作,但请求的参数相同,而且有很多。将粘贴代码从一个操作复制到另一个操作不是一个好主意 所以我实现了一个DatatableParamBean,它包含了正常工作所

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

示例:
sortColumn
sortType(asc,desc)
,筛选值,
pagenum
itemsonpage
等等

所以我在行动中处理它。我将每个请求参数字段分配到操作中,它工作正常

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

所以我实现了一个
DatatableParamBean
,它包含了正常工作所需的所有参数

问题是参数以这种方式发送
iSortColumn
iDisplayTotalLength
iTotalItems
等等 但我需要将它们分配给bean字段

bean.iSortColumn, bean.iDisplayTotalLength and so on.
假设
DatatableParamBean
在我的操作类中引用为“bean”

是否有方法覆盖分配请求参数值的默认机制?
目前我找到的唯一解决方案是使用所有这些参数创建一个action,比如说
DatatableAction
类,如果需要处理dataatatable,则使用扩展自
DatatableAction

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

private Bean bean = new Bean();

public Bean getBean() { return bean; }
参考文献:

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

否,ognl应处理这些参数。感谢您清除此问题。实际问题来自另一方。我成功地实现了将操作字段用作参数,问题是我无法更改来自js框架的参数,但现在我做到了。datatable具有重写参数名的特殊功能。您还可以使用两个附加选项:1)您可以实现
ModelDriven
;2) 使用
别名
拦截器。