在 fa 转发中使用前缀作为参数

发布于 2024-07-13 10:34:18 字数 147 浏览 4 评论 0原文

有什么方法可以使用前缀作为参数或在转发路径中使用,例如:

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

Is there any way i can use a prefix as a paramter or in the path of a forward like:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

星星的轨迹 2024-07-20 10:34:18

我不确定 prefix 的含义,我假设您指的是 servlet 的名称。 假设您在 struts-config.xml 中有此 forward 作为 action 映射的一部分:

<forward name="test" path="/switch" />

如果您想获取 forward ' 可用于您的操作的名称,您可以使用 mapping.findForwards() 获取它们。

如果您已经有一个 forward,例如:

ActionForward forward = mapping.findForward("test");

您可以通过以下方式获取转发的名称:

String fwdName = forward.getName(); // returns "test"

以及 servlet 名称或路径:

String servletPath = forward.getPath(); // returns "/switch.do"

您还可以从 request 中获取它object:

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 的 URL

了解如何创建一个新的 ActionForward,以及如何获取转发的名称和它们指向的 servlet 名称,您应该不会在构建所需的转发时遇到问题。

I'm not sure what is meant with prefix, I assume you are referring to the servlet's name. Suppose you have this forward in your struts-config.xml as part of an action mapping:

<forward name="test" path="/switch" />

If you want to get the forwards' names available to your action, you can get them with mapping.findForwards().

If you already have a forward, for example:

ActionForward forward = mapping.findForward("test");

you can get the name of the forward with:

String fwdName = forward.getName(); // returns "test"

and the servlet name or path with:

String servletPath = forward.getPath(); // returns "/switch.do"

you can also get it from the request object:

String servletPath = request.getServletPath();

OK, now, if you want to modify the forward before returning control to Struts, so that you can append extra parameters, you'll need to create a new ActionForward based on one of the forwards defined in your struts-config.xml, like for example:

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"

This would tell Struts to issue a redirect to an URL like /switch.do?id=3

Knowing how to create a new ActionForward, and how to get the names of the forwards and the servlet names they point to, you shouldn't have a problem constructing the forward that you need.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文