问题标签 [struts2-json-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2491 浏览

java - 使用struts2-json-plugin时如何在Struts2中获取请求体

我正在使用 Struts2 并且request.getInputStream()无法使用,因为它在第二次使用时会出错,首先可能已经被任何拦截器使用。

所以,我相信必须有某种方法来获取请求正文。但是我在网上没有找到任何东西,请帮助。

0 投票
1 回答
2541 浏览

json - 从 Struts2 中的 JSON 处理中排除属性

我有以下(完整)实体类。

stateId我只需要这个类中的两个属性作为 JSON 响应,即stateName. 必须忽略其余属性,以免被 JSON 处理/序列化。

我尝试如下设置拦截器json.excludePropertiesjson

执行此操作后,预计其余属性将被忽略,但它似乎不起作用。生成与所有实体类关联的 SQL 语句的数量,这反过来又会导致其他严重错误发生,例如,

我在这里想念什么?如何忽略除stateIdand之外的所有属性stateName

我正在使用 Struts2-json-plugin-2.3.16。

0 投票
1 回答
1031 浏览

jquery - 在 Struts2 中使用 JSON-RPC

我使用以下 JavaScript/jQuery 函数进行远程过程调用。

当单击按钮时,调用上述函数,如下所示。

调用方法的动作类如下。

User班级:

当单击给定按钮但未单击时,应调用带有注释的getUser()方法(在操作类中)。TestAction@SMDMethod

alert(JSON.stringify(user));jQuery 函数的处理程序中的这一行success总是 alerts undefined

在地址栏中使用直接链接,例如,

返回以下字符串。

这里缺少什么?为什么不JSON-RPC工作?

PS:我正在使用Struts2-json-plugin-2.3.16相同版本的框架。

0 投票
2 回答
2165 浏览

jquery - org.apache.struts2.json.JSONException:属性类型不兼容

java.util.List<Object[]>通过 JSON-rpc 接收一个 JavaScript 数组,如下所示。

我需要将这个相同的数组传回服务器(在最后一个维度稍作修改)。

我使用以下函数发回这个数组。

循环之后的数组结构与itemsArray第一个片段中提到的完全相同。

这个jQuery函数要调用的方法如下。

当尝试发出请求时,会引发以下异常。

为什么该数组没有被映射到List<Object[]>,当它List<Object[]>在接收来自服务器的响应时被正确地映射到一个数组(这是由一个单独的 jQuery 函数完成的,这个问题没有涉及到)?


编辑1:

下一行,

在给定的 jQuery 函数中对应于以下字符串。

这似乎是有效的,应该正确映射到java.util.List<Object[]>而不会导致异常。


编辑2:

这适用于删除泛型类型参数以便列表简单List(而不是<List<Object[]>>)或参数类型为List<List<Object>>. 就像是,

循环显示以下输出。

查看输出,应该正确映射 JSON 数组,List<Object[]>但它没有发生。


编辑3:(不是实质性编辑)。

虽然实际的数组在给出的 jQuery 函数中是不可见的,但这可以通过以下 jQuery 函数简单地重现。

而 SMD 方法的预期方法参数可能是java.util.List<Object[]>java.util.List<Long[]>。在任何一种情况下,它都会失败并给出异常。


剩下最后一件事。如果有像(在 JavaScript 中)这样的一维数组,

然后这被正确地映射到Long[](并因此Object[])作为 SMD 方法参数。

所以,现在我再也看不到去哪里了。

0 投票
1 回答
757 浏览

regex - 如何在 Struts2 网格中显示模型类的嵌套属性?

我有一个由struts2-jquery-grid-3.7.0插件提供的网格,如下所示。

可以看出,在几列中有一些嵌套的属性。它们未在给定的网格中列出(显示)。相关的列只是留空。其余字段照常显示。

我也尝试将它们封闭在其中,%{...}但无济于事。

如何在网格中显示这样的嵌套属性?他们有什么特殊待遇吗?

已验证这些嵌套属性是从数据库中获取的,并且模型已正确初始化。


编辑:

动作类:

作为回应,那些所有嵌套的属性都是空的。单行的 JSON 响应如下。

0 投票
0 回答
878 浏览

java - 由于 Uncaught TypeError,JQuery 未通过数据表显示 JSON 结果

我有一个display:table, 由 Jquery 包装datatable,它提供了对分页、搜索和排序的客户端处理。现在 m 将其转换为 ServerSide 处理。display:table通过调用fetchPageVisitReport如下所述的操作来获取数据:

通过display:tableJquery 显示此表,datatable如下所述:

而Jquery是:

现在对于服务器端处理,我有一个serverSideSearch过滤列表aaData然后添加到jsonResponse.

该行动的结果是

到底serverSideSearchjsonResponse是有aaData

但是 Jquery 没有显示 modified/received jsonResponse。它卡在 " 上Processing..."。我在 Chrome 控制台中检查了元素,它说,

var aData = _fnGetObjectDataFn( oSettings.sAjaxDataProp )( json );

0 投票
2 回答
1817 浏览

java - Struts2 BigDecimal 转换器未转换为字符串

我有以下代码:

xwork-conversion.properties

BigDecimalConverter.java

TheAction.java

struts.xml

观察

当请求用一些大的小数说提交时"12345678901234567890.123456789123456789",方法convertFromString被执行并将值转换为字符串并打印

但是当解析响应时,方法convertToString不会被执行,因为它没有在标准输出上记录预期的行。Struts2 内部转换BigDecimalString并返回以下响应。

当在 JavaScript 中接收到响应时,它就变成12345678901234567000了一个巨大的价值损失。


问题:

  • 为什么BigDecimalConverter.convertToString不被调用?
  • 有没有其他方法可以实现这一点(不定义相应String的字段和/或String吸气剂)?
0 投票
0 回答
131 浏览

json - Struts2 JQuery 网格 JSON 结果劫持

我在当前项目dataType中使用 struts2 jquery 网格。jquery 网格中使用的是json. 一切都像魅力一样。对我的应用程序进行了安全审计,他们查明了JSON 劫持漏洞。我在互联网上搜索以减轻一般的 json 劫持和 struts2 中的解决方案。我觉得很好的文档。 Json 劫持

防止 Struts2 被 JSON 劫持

我在 struts.xml 的 json 结果类型中使用了设置为 true 的前缀参数。一切正常,我得到了前缀为 {}&& 的 json 数据。如链接 2中所述,这用于减轻 json 劫持。

我面临的问题是 jQuery Grid 无法加载数据。

我的 struts.xml

网格无法填充。我<param name="prefix">true</param>从动作定义中删除,一切正常。但它很脆弱:(

0 投票
1 回答
136 浏览

java - 在动作调用中生成 Struts 2 JSON 输出

我目前正在使用 JSON 响应进行 Struts 2 Action 调用 - 我希望响应可以缓存,这意味着我需要在调用之前获取代码中生成的 JSON。像这样的东西,在和动作的 execute() 方法中:

有没有办法使用 Struts 2 JSON 库来做到这一点?

0 投票
2 回答
2217 浏览

json - 如何将 JSON 对象传递给 Struts2标签

我正在使用 JQuery 通过 ajax 调用获取 JSON 对象。JSON 对象包含模型列表(即 Bean)

例如List<myModel>

我正在使用 struts2 json 插件。

作为字符串的 JSON 对象如下所示。

我想将此 JSON 对象传递给<s:iterator>标记,如下所示

我可以通过将它迭代到 jquery 函数并创建 html 元素来在 jsp 上显示这个 JSON 对象,但我不想这样做。那么是否可以直接将 JSON 传递给<s:iterator>tag 呢?