Frage

ich eine Aktion Bohne in meinem Streifen Anwendung haben. Die Standardprozedur / Methode wird eine Liste von Daten, eine Liste aller meiner MarketResearch Objekte

Anzeigen

Auf meinem JSP, kann ich auf einen Klick die Details anzuzeigen, dies führt mich zu einer anderen JSP mit einer bereits besiedelten Form bezogen auf die jeweilige MarketResearch Objekt, das Sie ausgewählt haben.

Ich habe eine andere Methode auf meine Aktion Bohne, die zur save Submit-Button zugeordnet ist, dies geschieht in dem, was auf der geänderten Form ist, und bleibt es. Nachdem dies geschehen ist, möchte ich es auf die Form umgeleitet zurück, anstatt auf der Anzeige (Standard-Handler) Aktion, ist das möglich?

Meine Aktion ist wie folgt:

public class MarketResearchAction extends BaseAction
{

    @SpringBean
    ClientService clientService;
    private static final String VIEW = "/jsp/marketResearch.jsp";
    private Client client;
    private Client clientBeforeChanges;


    public Client getClient()
    {
        return client;
    }

    public void setClient(Client client)
    {
        this.client = client;
    }

    @DefaultHandler
    public Resolution viewAll()
    {
        return new ForwardResolution(VIEW);
    }

    public Resolution viewClientMarketResearch()
    {
        if (client.getSector().equals("Education"))
        {
            return new ForwardResolution("/jsp/marketResearchEducation.jsp");
        } else if (client.getSector().equals("Local Government"))
        {
            return new ForwardResolution("/jsp/marketResearchLocalGovernment.jsp");
        } else if (client.getSector().equals("Housing Association"))
        {
            return new ForwardResolution("/jsp/marketResearchHousing.jsp");
        }
        return new ForwardResolution("/jsp/viewClientMarketResearch.jsp");
    }

    public Resolution save()
    {
        clientBeforeChanges = clientService.getClientById(client.getId());
        clientService.persistClient(client);
        getContext().getMessages().add(new SimpleMessage("{0} updated", client.getName()));
        return new RedirectResolution("/MarketResearch.action").flash(this);
    }

    public Client getClientBeforeChanges()
    {
        return clientBeforeChanges;
    }

    public void setClientBeforeChanges(Client clientBeforeChanges)
    {
        this.clientBeforeChanges = clientBeforeChanges;
    }

    public ClientService getClientService()
    {
        return clientService;
    }

    public void setClientService(ClientService clientService)
    {
        this.clientService = clientService;
    }


}

Ist es möglich? Oder bin ich die Situation von einem schlechten Winkel nähern und soll erneut Faktor?

Danke

War es hilfreich?

Lösung

Ja. Sie könnten eine RedirectResolution zum Formular jsp zurückzukehren. Wenn Sie Schwierigkeiten haben, mit den Parametern, wenn man sich in der save() Methode hat, könnten Sie wie so tun:

return new RedirectResolution("/theJsp.jsp")
    .addParameter("one", one)
    .addParameter("two", two)
    .addParameter("three", three)
    .flash(this);

Wenn Sie nicht über die params haben, die das Formular übergeben wurden, werden Sie zu halten, haben sie irgendwie gehen. Sie könnten das MarketResearch Objekt durch das Formular übergeben, so dass Sie es dort haben würden.

<stripes:hidden name="marketResearch"  value="${ActionBean.marketResearch}"/> 

Und fügen Sie die erforderliche Instanz-Variable / Getter / Setter auf MarketResearchActionBean.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top