【发布时间】:2015-03-11 18:25:25
【问题描述】:
我正在使用 Datatables 服务器端 ajax 分页,需要将一些变量传递给服务器。 我的服务器正在运行 Struts2 操作来处理这个数据表请求。
我遇到了一些问题,因为数据表正在传递预定义的内部变量(如 iDisplayStart、iDisplayLength、iColumns、sSearch),但 Struts2 无法接收这种驼峰式样式(只有第一个 char 小写和第二个大写)。
为了确保这一点,我创建了这个测试操作:
@Action (value = "dummy",
results = {
@Result(name="ok", type="httpheader", params={"status", "200"}) }
)
@ParentPackage("default")
public class DummyAction {
private String xTrace;
public String execute () {
System.out.println( xTrace );
return "ok";
}
public String getxTrace() {
return xTrace;
}
public void setxTrace(String xTrace) {
this.xTrace = xTrace;
}
}
我正在调用这个网址:
localhost:8580/sagitarii/dummy?xTrace=thisisatest
输出为 NULL,但是当我将 xTrace 更改为 xyTrace(以及 get、set 和 url)时一切正常。 我怎样才能让它发挥作用?
* 编辑 *
我已经尝试过使用这种格式的任何单词:iPad、iMac、iPhone、电子邮件、... 我认为这可能只是我的配置,但请在发布答案之前尝试一下。
【问题讨论】:
-
@AndreaLigios 是对的。将您的 getter/setter 更改为
getXTrace/setXTrace即可。 -
我的 getter 和 setter 是由 eclipse 生成的。试试我上面的代码。
-
当然可以。构造setter的算法很简单:加上前缀
set,把参数的首字母转大写就可以了。所以对于xTrace参数S2会搜索setXTrace方法。 -
我认识人。试一试。使用 Eclipse 的 GGAS 为“iPad”和其他为“imPad”制作二传手。
标签: struts2 datatables ognl