gpt4 book ai didi

java - 在struts中的action方法中设置url参数

转载 作者:行者123 更新时间:2023-12-01 07:42:01 24 4
gpt4 key购买 nike

我想在从操作方法转发到另一个操作之前添加 URL 参数。尽管 HttpServletRequest 有 getParameter() 方法,但它没有 setParameter() 方法。我知道 setAttribute() 在那里,但我需要它成为 URL 的一部分(例如?something=something&some2=some2)。我知道我可以使用过滤器来完成此任务,但这对于这项任务来说有点过分了。

基本上,我们有一个外部管理的过滤器,当设置该参数时,它将更改页面上的某些内容。假设页面的颜色将作为 URL 参数的一部分传递。当该参数存在时,Servlet 过滤器会拾取该参数并更改该页面的颜色。我知道这是一种非常奇怪的做法,但这就是他们在这里设置的方式。

我知道如何通过将 URL 参数添加到操作 URL(即“/someAction.do?color=red”)来使用基于 java 脚本的表单提交来使其工作。但对于某些操作,它实际上在代码中执行了 action.forward("action_name") 。对于那些我想知道该怎么做。

有人知道如何在 struts 1.2 中做到这一点吗?

最佳答案

简单的回答是这是不可能的。请求参数应该来自 HTTP 请求。您可以使用 ServletFilterHttpServletRequestWrapper 的组合来假装添加它们,但那是在 Struts 之外。根据您想要完成的任务,可能会有更好的解决方案。想要进一步描述一下吗?

更新

根据您添加的其他详细信息,我认为您可以尝试一下,看看它是否满足您的需求:

import org.apache.struts.action.ActionRedirect;
...
ActionForward forward = action.forward("action_name");
ActionRedirect redirect = new ActionRedirect(forward);
redirect.addParameter("color", "red");
return redirect;

关于java - 在struts中的action方法中设置url参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3188789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com