我的struts 2操作名为CustomerAction.java
,位于folderHierarchy/actions/customer
下(此处customer
为namespace
)。从此动作类中的一个方法,我将重定向到我的遗留动作类
结果映射是:
@Result(name = "redirectTo", location = "#parameters.redirectLocation", type = "redirect") })
其中#parameters.redirectLocation的值为/customerhome.do?custIdId=200
行动方法是:
@Action(value = "CustomerAction!redirectToPage")
public String redirectToLocation() {
return "redirectTo";
}
但问题是struts在重定向位置之前自动添加当前动作命名空间(即客户)。因此,struts 2重定向到/myWebApp/customerhome.do?custIdId=200
,而不是重定向到/myWebApp/customer/customerhome.do?custIdId=200
。
我不知道为什么它添加了cuustomer命名空间以及如何摆脱这个?
我也试过
@Result(name = "redirectTo", location = "#parameters.redirectTo", type = "redirect", params = { "namespace", "/" }) })
但它也没有用。
另一个观察是
什么有用
@Result(name = ComposeMessageCrudAction.REDIRECT_TO, location = "/customerhome.do?custIdId=200", type = "redirect") })
什么行不通
@Result(name = "redirectTo", location = "#parameters.redirectLocation", type = "redirect") })
where value of #parameters.redirectLocation is `/customerhome.do?custIdId=200`
我不知道为什么第二种方法不起作用以及为什么之前添加客户命名空间
/customerhome.do?custIdId=200
答案 0 :(得分:0)
使用location
属性的值作为struts结果的动态参数。
private String redirectLocation = "/customerhome.do?custIdId=200";
public String getRedirectLocation() {
return redirectLocation;
}
@Result(name = REDIRECT_TO, location = "${redirectLocation}", type = "redirect")