使用JSON无需将JSON发送到Struts。即使可以将其配置为接受JSON内容类型,它也无济于事。您可以使用对Struts的普通请求以及传入的数据。如果是Ajax通话,那么您可以使用类似
$.ajax({ url: "<s:url namespace="/aaa" action="bbb"/>", data: {key: value}, dataType:"json", success: function(json){ $.each(json, function( index, value ) { alert( index + ": " + value ); }); }});本
value应是通过填充动作特性
params拦截和OGNL。将
json在成功函数返回应该是JSON对象,并可以直接使用,无需解析。
您需要为属性提供操作配置和设置器
key。
struts.xml
:
<package name="aaa" namespace="/aaa" extends="json-default"> <action name="bbb" method="ccc"> <result type="json"> <param name="root"> </result> </action> </package>
此配置使用
"json"包中的结果类型
"json-default",如果您使用struts2-json-
plugin,则此配置可用。
动作类:
public class Bbb extends ActionSupport { private String key; //setter private List<String> value = new ArrayList<>(); //getter public String ccc(){ value.add("Something"); return SUCCESS; }}返回
SUCCESS结果时,Struts将通过在序列化过程中调用其getter方法
value,将
root参数定义的属性序列化为JSON结果。



