使用 Struts 2 在项目中将查询字符串中的键值从一个页面传递到另一个页面

Posted

技术标签:

【中文标题】使用 Struts 2 在项目中将查询字符串中的键值从一个页面传递到另一个页面【英文标题】:Passing a key value in query string from one page to another in a project using Struts 2 【发布时间】:2014-02-07 11:37:10 【问题描述】:

我正在尝试使用 Struts 2 框架将查询字符串中的键值从一个页面传递到另一个页面。

网址映射:

<struts>        
    <package name="default" namespace="/" extends="struts-default">

        <!-- Line -->
        <action name="line" class="com.example.a.b.action.LineAction">
            <result name="success">/line.jsp</result>
        </action>

    </package>

</struts>

HTML 锚链接的 URL:

http://localhost/line?key=value

当它转到LineAction 时,我想获取查询字符串键值部分,但可以在网上找到任何东西。

【问题讨论】:

【参考方案1】:

如果我理解正确的话。在您的操作类中为key 创建GettersSetters。您将在您的操作类中获得一个值。

也许你试试这种方式..

     try
        URL url = new URL("http://www.google.com?gender=male&name=jagga");
        System.out.println(url.getQuery());

     catch(MalformedURLException e)
     
         e.printStackTrace();
     

您构建了该操作的 URL

【讨论】:

这应该是评论,而不是答案。【参考方案2】:

您可以从动作上下文中获取参数,例如

Map<String, Object> parameters = ActionContext.getContext().getParameters();

但更好的方法是实现ParameterAware

private Map<String, String[]> parameters;

public void setParameters(Map<String, String[]> parameters)
  this.parameters = parameters;

【讨论】:

这似乎不起作用,我试图获取键和值,我得到的只是 [Ljava.lang.String;@2edf7aa6​​ 你尝试了什么?代码工作正常。例如,请参阅this。

以上是关于使用 Struts 2 在项目中将查询字符串中的键值从一个页面传递到另一个页面的主要内容,如果未能解决你的问题,请参考以下文章