条纹:RedirectResolution;我怎样才能重定向到具体行动的事件?
题
我在我的条纹申请的诉讼豆。默认处理程序/方法将显示数据的列表,我的所有MarketResearch
对象的列表
在我的JSP,我可以在一个点击查看其详细信息,这需要我去一个不同的JSP基于您选择的特定MarketResearch
对象上的预先填充的形式。
我有被映射到save
提交按钮在我的行动豆另一种方法,这需要在什么是修订后的表格上,并持续它。在此之后已经发生了,我希望它回到重定向到形式,而不是上市(默认处理程序)的动作,这可能吗?
我的动作如下:
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;
}
}
,可以吗?还是我从坏的角度接近的情况下,应该重新的因素?
由于
解决方案
是。你可以返回一个RedirectResolution
到表单JSP。如果您遇到了困难的参数,如果你在save()
方法有他们,你可以做像这样:
return new RedirectResolution("/theJsp.jsp")
.addParameter("one", one)
.addParameter("two", two)
.addParameter("three", three)
.flash(this);
如果您还没有被传递给表单的参数,可以你就必须让他们去莫名其妙。您可以通过表单传递MarketResearch对象,因此你必须在那里。
<stripes:hidden name="marketResearch" value="${ActionBean.marketResearch}"/>
,并添加您的MarketResearchActionBean
必要的实例变量/的getter / setter。
不隶属于 StackOverflow