我想将枚举值列表作为HTTP查询参数传递。服务器端的入口点如下所示:
// Add
repo, err := git.OpenRepository(dir)
index, err := repo.Index()
err = index.AddAll([]string{}, git.IndexAddDefault, nil)
treeId, err := index.WriteTreeTo(repo)
tree, err := repo.LookupTree(treeId)
// Commit
sig := &git.Signature{
Name: userName,
Email: userName + "@" + beego.AppConfig.String("userdata::emailserver"),
When: time.Now(),
}
commitId, err := repo.CreateCommit("HEAD", sig, sig, message, tree)
// Push
remote, err := repo.LookupRemote("origin")
err = remote.Push([]string{"refs/heads/master"}, nil, sig, message)
这不能修改。请注意@GET
@Path("/getMyResult")
public MyResultType getMyResult(@QueryParam("me") final List<MyEnum> myEnums)
包含值MyEnum
,MyValue1
,MyValue2
和MyValue3
。 (MyValue4
与此问题无关。)如下所示只传递一个值,效果很好(这对我来说有点奇怪):
MyResultType
但是,以这种方式传递元素列表:
http://localhost/getMyResult?me=MyValue1
或者这样:
http://localhost/getMyResult?me=[MyValue1,MyValue3,MyValue4]
或者这样:
http://localhost/getMyResult?me=MyValue1,MyValue3,MyValue4
不起作用,它抛出这样的异常(第一个选项的错误消息):
http://localhost/getMyResult?me=["MyValue1","MyValue3","MyValue4"]
有谁能告诉我如何将RESTEASY001720: Unable to extract parameter from http request: javax.ws.rs.QueryParam(\"me\") [...]
No enum constant com.mycompany.myapp.MyEnum.[MyValue1,MyValue3,MyValue4]
元素列表作为HTTP GET查询参数传递?谢谢!
答案 0 :(得分:4)
为此(以及需要传递List
的其他情况),您必须为每个元素插入参数的名称。
这样:
http://localhost/getMyResult?me=MyValue1&me=MyValue3&me=MyValue4