mam po wprowadzeniuJak zawierać pola klasy nadrzędnej w odpowiedzi json za pomocą zastrzałów 2 json wtyczki
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
}
Użyłem wtyczki Struts2-json, mapowanie działanie jest
<package name="my-package" namespace="/" extends="json-default" >
<action name="myAction" class="MyAction">
<result type="json"></result>
</action>
</package>
odpowiedź, że otrzymać coś takiego.
{
"myFirstField":"someValue",
"mySecondField":"someOtherValue"
}
Chcę również otrzymać pola "wynik" i "wiadomość".
Jak mogę uwzględnić pola BaseAction w odpowiedzi na json?
dziękuję. Ale będzie serializować wszystkie właściwości rodzica. Chcę tylko dwóch właściwości rodzica w jsonie. Chyba muszę użyć "excludeProperties" w każdym mapowaniu akcji. Czy istnieje jakiś czystszy sposób? –
tak, to jest sposób, aby wykluczyć je stworzyć wewnętrzną klasę w swojej Akcji, która zawiera tylko informacje, które chcesz uwzględnić w JSON i ustawić go jako bazę/obiekt główny do marszu. –
Zamiast tworzyć wewnętrzną klasę w każdej akcji, myślę, że lepiej jest rozszerzyć typ wyniku JSON na swój własny sposób. Zamierzam zagłębić się w wtyczkę json. Dzięki Umeshowi za cenne rozwiązanie i pomysły. –