Domanda

Ho un chicco di azione nella mia applicazione strisce. Il gestore predefinito / metodo verrà visualizzato un elenco di dati, un elenco di tutti i miei oggetti MarketResearch

Al mio JSP, posso fare clic su uno per visualizzarne i dettagli, questo mi porta a una diversa JSP con un modulo di pre-popolato in base al particolare oggetto MarketResearch che è stato selezionato.

Ho un altro metodo sul mio fagiolo azione che viene mappato il save pulsante di invio, questo prende in quella che è la forma modificata, e persiste. Dopo questo ha avuto luogo, voglio che reindirizzare indietro alla forma, piuttosto che all'azione lista (gestore predefinito), è possibile?

La mia azione è la seguente:

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;
    }


}

E 'possibile? O sto avvicinando la situazione da un angolo di brutto e dovrebbe ri-factor?

Grazie

È stato utile?

Soluzione

Sì. Si potrebbe restituire un RedirectResolution al modulo jsp. Se hai difficoltà con i parametri, se li avete nel metodo save(), si potrebbe fare in questo modo:

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

Se non si hanno i params che sono stati passati al modulo, dovrete farli funzionare in qualche modo. Si potrebbe passare l'oggetto marketresearch attraverso il form in modo avresti lì.

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

E aggiungere il requisito variabile di istanza / getter / setter sul MarketResearchActionBean.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top