在前进中使用前缀作为参数

时间:2009-02-06 13:43:39

标签: struts

有什么方法可以使用前缀作为参数或在前进的路径中使用:

<forward name="test" path="/switch.do&page='/test.do'&prefix='/test'"/>

1 个答案:

答案 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之前修改前进,以便你可以追加额外的参数,你需要根据你在其中定义的一个前锋创建一个新的ActionForwardstruts-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名称,您应该在构建所需的转发时遇到问题。