目标是发送一个HTTP GET请求,其中包含表示枚举值的字符串列表问卷主题,然后使用这些参数选择正确主题的问题。我还添加了一个自定义转换器来将接收到的字符串转换为我的枚举。我的问题是当我在方法中调试时,“主题”总是为空。
这是我当前的RESTendpoint:
@ResponseBody
@GetMapping(path = "question/getquestionsbysubjects")
public List<Question> loadQuestionsBySubjects(@RequestParam(required=false) QuestionSubject[] subjects) throws IOException, GeneralSecurityException {
if(subjects == null || subjects.length == 0){
return this.loadAllQuestions();
}
return questionRepository.findByQuestionSubjectIn(Arrays.asList(subjects));
}
当我通过带有以下签名的方法传递单个主题时,我能够得到我的问题:
public List<Question> loadQuestionsBySubjects(@RequestParam(required=false) QuestionSubject subject)
因此,将字符串转换为枚举似乎不是问题。
我尝试发送多个请求,但在endpoint中主题始终为null。以下是我已经尝试使用postman的内容:
http://localhost:8080/question/getquestionsbysubjects?subjects=contacts,ko
http://localhost:8080/question/getquestionsbysubjects?subjects=["contacts", "ko"]
http://localhost:8080/question/getquestionsbysubjects?subjects=contacts&subjects=ko
有什么我不知道的问题吗?这些似乎在我在其他问题中发现的情况下有效。
这是转换器:
public class StringToQuestionSubjectConverter implements Converter<String, QuestionSubject> {
@Override
public QuestionSubject convert(String source) {
return QuestionSubject.valueOf(source.toUpperCase());
}
public Iterable<QuestionSubject> convertAll(String[] sources) {
ArrayList<QuestionSubject> list = new ArrayList<>();
for (String source : sources) {
list.add(this.convert(source));
}
return list;
}
}
直接使用List
:
@RequestParam(required=false) List<QuestionSubject> subjects
return questionRepository.findByQuestionSubjectIn(subjects);
问题内容: 有人知道您是否可以从具有参数的JobDSL中运行Jenkins的工作吗? 我已经使用了队列https://jenkinsci.github.io/job-dsl- plugin/#path/queue 但是根据文档,它仅接受字符串或Job对象。也许有一种方法可以对Job对象进行处理,但是还不清楚。从JobDSL文档: 问题答案: 有同样的问题并且在文档中找不到答案,所以我现在按照这个例
问题内容: 执行查询时如何在JDBC的prepareStatement中设置in子句的值。 例: 如果此条款可 问题答案: 我要做的是添加一个“?” 对于每个可能的值。 例如: 然后愉快地设置参数
所以目前,这是我所做的(不起作用): 这是与建议匹配的代码: 以及由junit测试生成的跟踪:
我正在尝试使用OpenAPI记录一个查询字符串,它看起来像 并包含具有属性 和的对象列表。 我的 文档如下所示 问题如下:它看起来像<code>样式:deepObject</code>选项只适用于一个级别,而不适用于我的对象实际所在的第二个级别。也就是说,它需要一个查询字符串,如 对象未序列化为具有和键的数组。 有办法解决吗?
问题内容: 我最近(终于?)开始使用它,对此可能有一个模糊的问题。 给定 和 工作出色,并且都可以打印: 我不知道我可以像(1)中那样处理列表,这很简洁。我以前曾经看过关于字段宽度参数(2)的旧格式。 我的问题是想要做这样的事情,将(1)和(2)结合起来: 但是,我无法做到这一点,即使有可能,我也无法从文档中找出答案。只需提供要打印的列表以及width参数即可。 顺便说一句,我也尝试过这个(没有运
在 C++ 中,空参数表可以用 void 指定或括号中不放任何东西。下列声明: void print(); 指定函数 print 不取任何参数,也不返回任何值。图 3.18 演示了 C++ 声明和使用带空参数表的函数的方法。 编程技巧 3.11 虽然函数先定义后使用时可以省略函数原型,最好也提供函数原型。提供函数原型可以避免代码使用时受到函数定义顺序的限制。(这个顺序可能随程序的演变而改变)。 /