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

使用Spring可以使路径变量可选吗?

施洛城
2023-03-14
问题内容

在Spring 3.0中,我可以有一个可选的path变量吗?

例如

@RequestMapping(value = "/json/{type}", method = RequestMethod.GET)
public @ResponseBody TestBean testAjax(
        HttpServletRequest req,
        @PathVariable String type,
        @RequestParam("track") String track) {
    return new TestBean();
}

在这里我想/json/abc还是/json要调用相同的方法。
一种明显的解决方法是声明type为请求参数:

@RequestMapping(value = "/json", method = RequestMethod.GET)
public @ResponseBody TestBean testAjax(
        HttpServletRequest req,
        @RequestParam(value = "type", required = false) String type,
        @RequestParam("track") String track) {
    return new TestBean();
}

然后/json?type=abc&track=aa或/json?track=rr将工作


问题答案:

你不能具有可选的路径变量,但是可以有两个调用相同服务代码的控制器方法:

@RequestMapping(value = "/json/{type}", method = RequestMethod.GET)
public @ResponseBody TestBean typedTestBean(
        HttpServletRequest req,
        @PathVariable String type,
        @RequestParam("track") String track) {
    return getTestBean(type);
}

@RequestMapping(value = "/json", method = RequestMethod.GET)
public @ResponseBody TestBean testBean(
        HttpServletRequest req,
        @RequestParam("track") String track) {
    return getTestBean();
}


 类似资料:
  • 我正在尝试使用PathVariable创建一个包含Hello和name user的简单页面。如果你来的话http://localhost:8080/#/John你会在网站上看到“你好,约翰”。 我知道好Java,但在AngularJS我是初学者。 Hello控制器 HelloController在角 app.js 简单的页面hello/布局。html 谢谢你的帮助!

  • 问题内容: 我有这个变量: 我想在像SCSS这样的选择器中使用它: 因此输出变为CSS: 但这是行不通的。可能吗? 问题答案: 如果在字符串中使用,例如在URL中使用:

  • 我最近升级到了最新版本的 显示为必需。 下面是我的控制器方法代码 我尝试添加,默认情况下它是。但是,在炫耀上,它仍然显示为强制性的。 以前在中,它工作正常,在swagger上它被标记为可选 在这方面的任何帮助将不胜感激。 谢谢

  • 问题内容: 我想用可选的path参数声明一个路径,因此当我添加它时,页面会做一些额外的事情(例如,填充一些数据): http:// localhost / app / path / to / page <=渲染页面 http:// localhost / app / path / to / page / pathParam <=根据pathParam使用某些数据渲染页面 在我的React Rout

  • 我想使用一个Eclipse类路径变量来解析我的类路径中的库的附加源代码JAR文件。这是我当前的“。 当我现在为“spring-ws-1.5.8-all.JAR”添加源JAR文件时,.classpath文件的内容是: 如您所见,Eclipse将“sourcepath”属性添加到带有绝对路径的“classpathentry”元素中。 现在我的想法是用类路径变量“SOURCE_path”替换绝对路径,该

  • 下面是我将考虑的两种情况。 1)假设对于用户(其名称在path变量中提供)xyz,如果xyz不具有OAuth的特性,我希望使用httpBasic对其进行身份验证 2)如果另一个用户abc具有OAuth的特性,我希望使用OAuth/OpenID Connect对其进行身份验证。