当前位置: 首页 > 知识库问答 >
问题:

Spring@Request estParam的值/名称为“status”

段干跃
2023-03-14

我正在运行一个Spring boot MVC应用程序,在我的控制器中有一个@RequestParameter,其值为“status”。当我通过请求映射(例如http://localhost:8080/pathToMethod?status=someStatus

@RequestMapping(method = RequestMethod.GET, value ="pathToMethod")
public responseType methodName(
@RequestParam(value = "otherParam", required = false) List<String> param, 
@RequestParam(value = "status", required = false) List<String> status, 
HttpServletRequest request, HttpServletResponse response){
    //code here 
}

失败,错误如下:

字段'status'上的对象'ModelAndView'中的字段错误:拒绝值[Soeming];代码[typeMismatch.modelAndView.status, typeMismatch.status, typeMismatch.org.springframework.http.Httpstatus, typeMismate];参数[org.springframework.context.support.DefaultMessageSourceResolable:代码[ModelAndView.status, status];参数[];默认消息[status]];默认消息[无法将类型[java.lang.String]的属性值转换为属性'status'所需的类型[org.springframework.http.Httpstatus];嵌套异常是org.springframework.core.convert.ConversionFailedException:无法将值'Soeming'从类型[java.lang.String]转换为类型[org.springframework.http.Httpstatus];嵌套异常是java.lang.IllegalArgumentException:没有枚举常量org.springframework.http.Httpstatus. Soeming]

是否有任何方法可以绕过Springs对“status”参数的默认处理,以便它不会自动尝试将其转换为HttpACK?

链接到类似问题

共有2个答案

通俊发
2023-03-14

使用Spring 4和Java8,可以使用可选的路径变量。

代码

@RequestMapping(value = {"/path", "/path/{status}")
public String getResource(@PathVariable Optional<String> status) {
  if (status.isPresent()) {
    return service.processResource(status.get());
  } else {
    return service.processResource();
  }
}
谭飞掣
2023-03-14

发生这种情况是因为您接受请求参数作为列表,但只传递字符串。

检查以下可能的原因。

1.删除列表

2.为请求参数使用任何其他名称,而不是status,因为statusorg.springframework.http.Httpstatus的默认关键字

 类似资料:
  • 问题内容: 我有一个带有列名称的数据表: 其中“列”包含数字值,“期间”列是具有1到48的标识列,因此有48行。 我想将此表按摩成一种格式,在该格式中,我具有“名称”列和“值”列以及“期间”列。 我想创建原始表的视图来执行此操作吗?如何选择列名称,并将其以及该列中的正确值放入NameOfVehicle和Value列中? 问题答案: 如果您有固定的列,则始终可以执行以下操作: 如果列是动态的或未知的

  • 我试图自动创建一个基于名称的Spring Data方法 如果我没有IN,这将是简单的-这是工作: 但是如何在不经过注释的情况下将IN连接到名称中呢?

  • 我正在尝试部署我的spring应用程序。以下是pom的副本。xml文件。 以下是申请的副本。属性文件。 我得到的错误跟踪如下。 我被夹在中间。我几乎没试过什么东西。因为提供entityManager的hibernate JPA启动器是从pom中删除hibernate核心和hibernate实体管理器的。xml也是如此。但我也犯了同样的错误。除此之外,我还创建了自定义datasoruce,如下所示。

  • 但我的代码不起作用,它说类型没有定义:

  • 我试图使用spring data Cassandra将现有的Cassandra表映射到java类中。表名有大写字母,例如“mytable”。但是,当我使用@table(“mytable”)时,spring data cassandra无法识别表,因为它将名称视为小写。 有什么方法告诉spring data cassandra不要将名称转换为小写吗? 示例代码:

  • 我做了一个自动加载用户设置xml文件的程序,但一个问题是,当我在代码中添加新值时,程序试图读取没有“data5”值的xml文件时,程序返回一个错误: 当我关闭程序时,我得到了另一个关于另一个进程使用的文件的错误 我不明白为什么文件仍然被锁定。它应该在之后关闭。我试图让程序在读取xml之前创建一个新的xml值,但这不是一个好主意,因为它将替换修改后的值。这是我的密码