Ho seguito dell'attuazioneCome includere campi della classe genitore in risposta JSON utilizzando montanti 2 JSON plug
public abstract class BaseAcion extends ActionSupport {
private String result;
private String message;
//getters, setters
}
public class MyAction extends BaseAction {
private String myFirstField;
private String mySecondField;
public String execute() {
...
myFirstField = "someValue";
mySecondField = "someOtherValue";
...
result = SUCCESS;
message = "Some message here";
...
return result;
}
//methods, getters, setters
}
Ho usato Struts2-JSON plug-in, la mappatura azione è
<package name="my-package" namespace="/" extends="json-default" >
<action name="myAction" class="MyAction">
<result type="json"></result>
</action>
</package>
La risposta che ho ricevere è qualcosa di simile.
{
"myFirstField":"someValue",
"mySecondField":"someOtherValue"
}
Desidero ottenere anche i campi "risultato" e "messaggio" in risposta.
Come posso includere i campi BaseAction nella risposta JSON?
grazie. Ma serializzerà tutte le proprietà del genitore. Voglio solo due proprietà del genitore in json. Suppongo di dover utilizzare "excludeProperties" in ogni mapping di azioni. C'è un modo più pulito? –
sì, questo è il modo per escluderli, altrimenti creare una classe interna all'interno di Action che contiene solo le informazioni che si desidera includere nel JSON e impostarlo come oggetto base/root per il marshal. –
Invece di creare una classe interna in ogni azione, penso che sia meglio estendere il tipo di risultati JSON a modo mio. Sto andando a tuffarmi nel plugin JSON. Grazie a Umesh per la tua preziosa soluzione e idee. –