我正在使用struts 2(json-lib-2.1.jar)附带的json插件,并尝试按照网站进行设置。
这是我的struts.xml
<struts>
<package name="example" extends="json-default">
<action name="AjaxRetrieveUser" class="actions.view.RetrieveUser">
<result type="json"/>
</action>
</package>
</struts>
但是我收到了这个警告: 严重:无法找到父包json-default
我还有别的事吗?
编辑:
我将此方法添加到我的RetrieveUser:
public Map<String,Object> getJsonModel()
{
return jsonModel;
}
我的struts.xml看起来像这样:
<struts>
<package name="example" extends="json-default">
<action name="AjaxRetrieveUser" class="actions.view.RetrieveUser">
<result type="json"/>
<param name="root">jsonModel</param>
</action>
</package>
</struts>
但是,我认为响应不是从RetrieveUser类到javascript。我正在使用firebug,没有请求被发送。
答案 0 :(得分:0)
我相信net.sf.json-lib只是一个工具集,您可以在Java中使用它来构建支持JSON的对象,适合通过您描述的操作返回。
可能你需要包含struts-json-plugin - 确保它的版本符合你的struts版本。
我还注意到,在写入时,您的操作将尝试返回序列化的RetrieveUser。我已经完成/看到的大多数实现通过添加
来指定要返回的根对象<param name="root">jsonUser</param>
在标签下,并在RetrieveUser中定义此方法
public Map<String, Object> getJsonUser()
[这在Sruts2文档中提到]。希望有所帮助。
[edit]我使用Map - 您也可以使用json-lib提供的对象结构。
回复:你的编辑。可能需要看到你的调用javascript。也许我会建议你确保你既有成功又有错误处理程序。你可以调试/登录以显示在java中调用该方法吗?你的日志显示什么吗?这通常是某种错误......