FieldErrors我提出的JQuery Ajax的職位,並希望任何actionmessages
,actionerrors
和fielderrors
在行動早在響應(JSON格式)加入。在struts.xml
Struts2的JSON插件:添加ActionMessages,的ActionErrors,並響應
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">fieldErrors,actionErrors</param>
</result>
我的操作配置:
我加了這個結果。
我得到:{"actionErrors":[],"fieldErrors":{}}
作爲迴應,儘管值堆棧上存在字段錯誤。
如果我改變的結果的配置是:
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="root">fieldErrors</param>
</result>
JSON的反應是我預料::
{"thePropertyWithValidationError":["You must supply correct information."]}
我真的想在響應中包括兩個動作錯誤和領域錯誤的,如果可能。
任何想法?提前謝謝你!
編輯:
我想我可能需要利用某種形式的正則表達式的...我想:
<result name="input" type="json">
<param name="ignoreHierarchy">false</param>
<param name="includeProperties">fieldErrors\[\d+\],actionErrors\[\d+\]</param>
</result>
具有相同的結果:
{"actionErrors":[],"fieldErrors":{}}
我還發現這bug report,這可能會導致我的問題,因爲我使用Struts v2.2.1。 (V2.2.2還沒有出來)
編輯#2:
也許JSONValidationInterceptor是什麼,我需要......我似乎無法弄清楚如何與我的自定義JQuery的阿賈克斯用它帖子...
我使用JSON攔截器來填充我的屬性,下面是我的操作配置:
<action name="MyAction" method="add" class="com.test.actions.MyAction">
<interceptor-ref name="json" />
<interceptor-ref name="jsonValidationWorkflowStack"/>
<interceptor-ref name="MyCustomInterceptor" />
<result name="success" type="json" />
</action>
我張貼: {"struts.enableJSONValidation":"true", "testProperty":"true"}
的響應只是轉發到我的全球結果的映射,error.jsp文件(與我有他們設置在error.jsp頁面來顯示顯示字段錯誤):
我猜我期待如果堆棧上有Fielderrors/actionerrors,它們將作爲JSON返回?
謝謝!我沒有將ignoreHierarchy參數設置爲false。 – Beez 2012-06-29 18:13:01