Jakarta ee Struts 2中作为get参数的数组

Jakarta ee Struts 2中作为get参数的数组,jakarta-ee,struts2,http-get,Jakarta Ee,Struts2,Http Get,我有一个像下面这样的动作 public class CompareAction { private Long[] pids; public Long[] getPids() { return pids; } public void setPids(Long[] pids) { this.pids = pids; } public String displayComparison() { for

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

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-购买/比较?pids=12,23,34
。我想要的输出是

pid = 12

pid = 23

pid = 34
但我得到的是

pid = 122334

我试着用谷歌搜索,但找不到怎么做。请帮我找出问题所在。

您需要多次传递参数
pids

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

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

如果要保留此属性(
http://localhost:8080/sm-购买/比较?pids=12,23,34
)url格式您必须添加一个自定义转换器,或者您可以在操作中将PID设置为字符串,并通过在逗号处拆分来解析数组。

请尝试
http://localhost:8080/sm-购物/比较?pids[]=12&pids[]=23&pids[]=34
作为URL?或添加自定义转换器…如何添加自定义转换器?