编辑:更改了问题标题和内容。在阅读JSON 插件指南后,我意识到该插件可能需要一个 JSON 字符串而不是这个查询映射,在这种情况下,我通常会使用 GSON。我想问题变成了:Struts2如何处理这样的查询字符串的类型转换:sort[0][field]=status&sort[0][dir]=asc
我正在使用 Kendo UI 网格与我的 Struts2 后端交互。发送到服务器的 AJAX 请求遵循以下格式(GET 查询字符串):
take=5&skip=0&page=1&pageSize=5&sort%5B0%5D%5Bfield%5D=status&sort%5B0%5D%5Bdir%5D=asc
或(非转义):
take=5&skip=0&page=1&pageSize=5&sort[0][field]=status&sort[0][dir]=asc
基本上,Kendo UI 网格正在向服务器发送一个扁平化的 JSON 对象。所以我创建了一个这样的排序模型对象来获取输入:
public class SortModel {
private String field;
private String dir;
}
并将其作为要填充的变量包含在我的 Struts2 操作中:
private SortModel[] sort;
但是,当 AJAX 请求进入时,Struts2 永远不会填充它。我还尝试添加 JSON 拦截器,但我认为我误解了它的反序列化过程,如编辑中所述。
无论如何,有没有人设法使用上述查询字符串或类似的方式进行 Struts2 类型转换:sort[0][field]=status&sort[0][dir]=asc
?