当前位置: 首页 > 面试题库 >

如果找不到@PathVariable,它是否可以返回null?

谷梁襦宗
2023-03-14
问题内容

@PathVariable如果path变量不在url中,是否可以使返回null?否则我需要做两个处理程序。一个为/simple另一个,为/simple/{game},但即使没有定义游戏,我都做同样的事情,但是我从列表中选择第一个,但是如果定义了游戏参数,那么我就使用它。

@RequestMapping(value = {"/simple", "/simple/{game}"}, method = RequestMethod.GET)
public ModelAndView gameHandler(@PathVariable("example") String example,
            HttpServletRequest request) {

这就是我尝试打开页面时得到的/simple

原因:java.lang.IllegalStateException:在@RequestMapping中找不到@PathVariable
[example]


问题答案:

它们不能是可选的,不可以。如果需要,则需要两种方法来处理它们。

这反映了路径变量的性质-
将它们设为null并没有任何意义。REST样式的URL始终需要完整的URL路径。如果您有一个可选组件,请考虑使其成为一个请求参数(即使用@RequestParam)。这更适合于可选参数。



 类似资料:
  • 可以曾经返回吗? 文档没有提到这是一种可能性,所以我想知道我是否必须在取消引用之前检查的结果是否为值。

  • 或者这样会更好: 附注。抱歉开始新的话题,但我的业力不允许我评论答案。

  • 问题内容: 我现在正在使用Microsoft SQL,我的代码是: 我希望当[avail]存在时,返回[avail]的值,如果不存在,则返回0或“未找到” 谢谢! 问题答案: 你可以用这个

  • 问题内容: 我每月都有一组职位。现在,我需要一个数组,其中包含每个月发布的帖子总数。我尝试下面的MySql查询,它的工作正常,但我期望0(零)几个月没有记录。在这里,它不返回0。 我读到COUNT()不会返回“ 0”,那么我该如何实现呢? 我尝试了IFNULL()和COALESCE(),但仍然得到相同的结果。请帮助此查询。谢谢你...... 结果: 预期结果(没有一月份的职位): 样本数据: 问题

  • 问题内容: 我有以下选择语句,以获取流的下一个预定项目。如果没有匹配的行,我希望它返回默认值。这是我正在使用的行: 那应该可以获取最近计划的项目,但如果它早于查询之前30分钟,则不会。但是,如果用户未安排任何时间,则我需要一个默认值,以便流中实际播放某些内容。我尝试了以下方法: 和: 但是,如果未找到任何行,它将始终返回空结果。我该如何返回默认值? 问题答案: 一种方法 由于只返回一行,因此可以使

  • 问题内容: 如果实际查询不返回任何行,是否可以将查询中的所有列作为空列(不为null)或空行返回 问题答案: 通常,如果必须返回一个空行。 如果您的原始查询是 您可以将其变成子查询 这样可以确保查询的行数始终至少为1。