有什么方法可以使用前缀作为参数或在前进的路径中使用:
<forward name="test" path="/switch.do&page='/test.do'&prefix='/test'"/>
答案 0 :(得分:0)
我不确定prefix
是什么意思,我假设你指的是servlet的名字。假设您struts-config.xml
中的转发作为action
映射的一部分:
<forward name="test" path="/switch" />
如果您希望将转发'名称用于您的操作,则可以使用mapping.findForwards()
获取这些名称。
如果您已经有forward
,例如:
ActionForward forward = mapping.findForward("test");
你可以通过以下方式获得前锋的名字:
String fwdName = forward.getName(); // returns "test"
和servlet名称或路径:
String servletPath = forward.getPath(); // returns "/switch.do"
您也可以从request
对象获取它:
String servletPath = request.getServletPath();
好了,现在,如果你想在将控制返回到Struts之前修改前进,以便你可以追加额外的参数,你需要根据你在其中定义的一个前锋创建一个新的ActionForward
。 struts-config.xml
,例如:
ActionForward forward = mapping.findForward("test");
StringBuilder path = new StringBuilder(forward.getPath());
path.append("?id=");
path.append(someobject.getId());
return new ActionForward(path.toString(), true); // `true` means "do a redirect"
这会告诉Struts重定向到/switch.do?id=3
知道如何创建新的ActionForward
,以及如何获取前锋的名称以及他们指向的servlet名称,您应该在构建所需的转发时遇到问题。