【问题标题】:Array as get parameter in Struts 2数组作为 Struts 2 中的获取参数
【发布时间】:2023-03-18 04:58:01
【问题描述】:

我有一个像下面这样的动作

public class CompareAction {

    private Long[] pids;

    public Long[] getPids() {
        return pids;
    }

    public void setPids(Long[] pids) {
        this.pids = pids;
    }

    public String displayComparison() {
        for (Long pid : pids) {
            System.out.println("pid = " + pid);
            System.out.println();
        }
        return "success";
    }
}

我正在尝试通过在地址栏中输入以下 url http://localhost:8080/sm-shop/compare?pids=12,23,34 来发送一个数组。我想要的输出是

pid = 12

pid = 23

pid = 34

但我得到的是

pid = 122334

我尝试了谷歌搜索,但找不到如何做到这一点。请帮我找出问题所在。

【问题讨论】:

  • 试试http://localhost:8080/sm-shop/compare?pids[]=12&pids[]=23&pids[]=34作为网址?
  • 或者添加自定义转换器...
  • 如何添加自定义转换器?

标签: jakarta-ee struts2 http-get


【解决方案1】:

需要多次传递参数pids

http://localhost:8080/sm-shop/compare?pids=12&pids=23&pids=34

如果您将pids 属性声明为数组,Struts2 会自动将多个参数映射到数组。

【讨论】:

    【解决方案2】:

    如果你想保留这个(http://localhost:8080/sm-shop/compare?pids=12,23,34) url 格式,你必须添加一个自定义转换器,或者你可以在你的操作中将 pids 设置为字符串,并通过以逗号分隔来解析数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多