gpt4 book ai didi

java - Spring MVC - 如何获取@RequestMethod方法参数列表(可能通过@RequestParam属性)

转载 作者:行者123 更新时间:2023-12-02 07:53:07 27 4
gpt4 key购买 nike

我有一个 Spring MVC Controller ,具有以下方法:

    @RequestMapping(value = {"/filter"}, method = RequestMethod.GET)
@ResponseBody
public List<MetricType> getMetricTypes(
@RequestParam(value = "subject", required = false) Long subjectId,
@RequestParam(value = "area", required = false) Long areaId,
@RequestParam(value = "onlyImmediateChildren", required = false) Boolean onlyImmediateChildren,
@RequestParam(value = "componentGroup", required = false) Long componentGroupId
) throws Exception
{
//Some code
}

是否可以通过编程方式获取当前方法的参数列表(例如通过@RequestParam注释)?解决方案应该在没有调试符号的情况下工作。如果需要,可以对方法名称进行硬编码。

我正在尝试检查查询字符串是否包含无效参数(例如由于拼写错误)。我将比较请求中的查询参数名称与方法签名中的查询参数名称(如果可能)。

已更新

解决方案也应该适用于可选(required=false)参数。

非常感谢

马克西姆

最佳答案

您可以使用HttpServletRequest请求作为

public List<MetricType> getMetricTypes(    
@RequestParam(value = "subject", required = false) Long subjectId,
@RequestParam(value = "area", required = false) Long areaId,
@RequestParam(value = "onlyImmediateChildren", required = false) Boolean onlyImmediateChildren,
@RequestParam(value = "componentGroup", required = false) Long componentGroupId ,
HttpServletRequest request
) throws Exception

然后获取所有请求参数名称为

request.getParameterNames()

并在其中使用循环来完成您的工作

for ( String parameterName:requestParameterNames){

}

关于java - Spring MVC - 如何获取@RequestMethod方法参数列表(可能通过@RequestParam属性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com