Ich versuche http://code.google.com/p/struts2-jquery/wiki/SelectTag#A_simple_Doubleselect_with_Topics zu implementieren, aber ich kann nicht die json Abfangjäger mit anderen Abfangjäger scheinen erfolgreich zu kombinieren.JSON Serialisierung (mit jQuery Plugin) w/Struts2 Abfangjäger -
In meinem struts.xml:
<package name="admin" namespace="/admin" extends="struts-default,json-default">
<action name="LoadLists" method="loadLists" class="test.JSONAction">
<interceptor-ref name="json">
<param name="contentType">application/json</param>
<!--interceptor added to override this property below-->
<param name="excludeNullProperties">true</param>
</interceptor-ref>
<result name="success" type="json"/>
<interceptor-ref name="servletConfig"/>
</action>
</package>
Hier einige der Action-Klasse-Code.
Bitte beachte, dass ich brauche die session
Variable und deshalb haben hinzugefügt, um die <interceptor-ref name="servletConfig"/>
Linie über die Sitzungsvariable zu setzen, so dass es in den folgenden Java-Code verwendet werden:
public String loadLists() {
items = (List<String>) session.get("itemsList");
if (itemSelected.equals...
// Do stuff to process the list and generate the second list...
}
public void setItemSelected(String itemSelected) {
this.itemSelected = itemSelected;
}
aber wenn ich <interceptor-ref name="servletConfig"/>
haben, Fehler Protokolle zeigen:
org.apache.struts2.json.JSONInterceptor.debug:68 - Content type must be 'application/json' or 'application/json-rpc'. Ignoring request with content type application/x-www-form-urlencoded
und die Variable itemSelected
nie, weil die json Serialisierung gesetzt wird ignoriert!
Wenn ich entfernen <interceptor-ref name="servletConfig"/>
dann kann ich nicht die Sitzung zugreifen!
Was fehlt mir?
Sorry, my bad. Ich hätte das gründlich testen sollen. Was ich für das Problem hielt, war wirklich kein Problem. Fixed mit Standard-Struts2 Interzeptoren. Es hinterlässt viele Warnungen in meinen Fehlerprotokollen, aber darüber mache ich mir später Gedanken. – rmc
Dies ist eine Beobachtung, sondern 'erstreckt = "Streben-default, json-default"' besser als geschrieben steht: 'erstreckt = "json-default"' da, wenn man sich in Ihrem struts2-json-plugin-xxxjar unter dem Standardpaket und öffne struts-plugin.xml du wirst sehen, dass 'Paketname = "json-default" extends = "struts-default"' offensichtlich keine große Sache, aber wissenswert. – Quaternion