我的行动如下
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";
}
}
我正在尝试通过在地址栏http://localhost:8080/sm-shop/compare?pids=12,23,34
中键入以下网址来发送数组。我想要的输出是
pid = 12
pid = 23
pid = 34
但我得到的是
pid = 122334
我尝试使用谷歌搜索,但无法找到如何做到这一点。请帮我弄清楚什么是错的。
答案 0 :(得分:5)
您需要多次传递参数pids
:
http://localhost:8080/sm-shop/compare?pids=12&pids=23&pids=34
如果您将pids
属性声明为数组,Struts2会自动将多个参数映射到数组。
答案 1 :(得分:5)
如果你想保留这个(http://localhost:8080/sm-shop/compare?pids=12,23,34
)url格式,你必须添加一个自定义转换器,或者你可以在你的动作中使pids成为一个String,并通过用逗号分割它来解析数组。