问题标签 [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.
java - 使用struts2-json-plugin时如何在Struts2中获取请求体
我正在使用 Struts2 并且request.getInputStream()
无法使用,因为它在第二次使用时会出错,首先可能已经被任何拦截器使用。
所以,我相信必须有某种方法来获取请求正文。但是我在网上没有找到任何东西,请帮助。
json - 从 Struts2 中的 JSON 处理中排除属性
我有以下(完整)实体类。
stateId
我只需要这个类中的两个属性作为 JSON 响应,即stateName
. 必须忽略其余属性,以免被 JSON 处理/序列化。
我尝试如下设置拦截器json.excludeProperties
。json
执行此操作后,预计其余属性将被忽略,但它似乎不起作用。生成与所有实体类关联的 SQL 语句的数量,这反过来又会导致其他严重错误发生,例如,
我在这里想念什么?如何忽略除stateId
and之外的所有属性stateName
?
我正在使用 Struts2-json-plugin-2.3.16。
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
相同版本的框架。
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 方法参数。
所以,现在我再也看不到去哪里了。
regex - 如何在 Struts2 网格中显示模型类的嵌套属性?
我有一个由struts2-jquery-grid-3.7.0插件提供的网格,如下所示。
可以看出,在几列中有一些嵌套的属性。它们未在给定的网格中列出(显示)。相关的列只是留空。其余字段照常显示。
我也尝试将它们封闭在其中,%{...}
但无济于事。
如何在网格中显示这样的嵌套属性?他们有什么特殊待遇吗?
已验证这些嵌套属性是从数据库中获取的,并且模型已正确初始化。
编辑:
动作类:
作为回应,那些所有嵌套的属性都是空的。单行的 JSON 响应如下。
java - 由于 Uncaught TypeError,JQuery 未通过数据表显示 JSON 结果
我有一个display:table
, 由 Jquery 包装datatable
,它提供了对分页、搜索和排序的客户端处理。现在 m 将其转换为 ServerSide 处理。display:table
通过调用fetchPageVisitReport
如下所述的操作来获取数据:
通过display:table
Jquery 显示此表,datatable
如下所述:
而Jquery是:
现在对于服务器端处理,我有一个serverSideSearch
过滤列表aaData
然后添加到jsonResponse
.
该行动的结果是
到底serverSideSearch
,jsonResponse
是有aaData
。
但是 Jquery 没有显示 modified/received jsonResponse
。它卡在 " 上Processing..."
。我在 Chrome 控制台中检查了元素,它说,
在 var aData = _fnGetObjectDataFn( oSettings.sAjaxDataProp )( json );
java - Struts2 BigDecimal 转换器未转换为字符串
我有以下代码:
xwork-conversion.properties
BigDecimalConverter.java
TheAction.java
struts.xml
观察
当请求用一些大的小数说提交时"12345678901234567890.123456789123456789"
,方法convertFromString
被执行并将值转换为字符串并打印
但是当解析响应时,方法convertToString
不会被执行,因为它没有在标准输出上记录预期的行。Struts2 内部转换BigDecimal
为String
并返回以下响应。
当在 JavaScript 中接收到响应时,它就变成12345678901234567000
了一个巨大的价值损失。
问题:
- 为什么
BigDecimalConverter.convertToString
不被调用? - 有没有其他方法可以实现这一点(不定义相应
String
的字段和/或String
吸气剂)?
json - Struts2 JQuery 网格 JSON 结果劫持
我在当前项目dataType
中使用 struts2 jquery 网格。jquery 网格中使用的是json
. 一切都像魅力一样。对我的应用程序进行了安全审计,他们查明了JSON 劫持漏洞。我在互联网上搜索以减轻一般的 json 劫持和 struts2 中的解决方案。我觉得很好的文档。
Json 劫持
我在 struts.xml 的 json 结果类型中使用了设置为 true 的前缀参数。一切正常,我得到了前缀为 {}&& 的 json 数据。如链接 2中所述,这用于减轻 json 劫持。
我面临的问题是 jQuery Grid 无法加载数据。
我的 struts.xml
网格无法填充。我<param name="prefix">true</param>
从动作定义中删除,一切正常。但它很脆弱:(
java - 在动作调用中生成 Struts 2 JSON 输出
我目前正在使用 JSON 响应进行 Struts 2 Action 调用 - 我希望响应可以缓存,这意味着我需要在调用之前获取代码中生成的 JSON。像这样的东西,在和动作的 execute() 方法中:
有没有办法使用 Struts 2 JSON 库来做到这一点?
json - 如何将 JSON 对象传递给 Struts2标签
我正在使用 JQuery 通过 ajax 调用获取 JSON 对象。JSON 对象包含模型列表(即 Bean)
例如List<myModel>
我正在使用 struts2 json 插件。
作为字符串的 JSON 对象如下所示。
我想将此 JSON 对象传递给<s:iterator>
标记,如下所示
我可以通过将它迭代到 jquery 函数并创建 html 元素来在 jsp 上显示这个 JSON 对象,但我不想这样做。那么是否可以直接将 JSON 传递给<s:iterator>
tag 呢?