如何在spring中从rest url获取包含点(。)的参数
Posted
技术标签:
【中文标题】如何在spring中从rest url获取包含点(。)的参数【英文标题】:How to get parameter which is containing dot(.) from rest url in spring 【发布时间】:2015-10-30 20:26:52 【问题描述】:我正在使用 Spring REST 和休眠创建一个 Web 应用程序。在这里,我使用来自 url 的唯一用户名从数据库中获取记录。 但问题是,如果我正在编写简单的字符串,那么它工作正常,但是当在用户名中我正在编写 dot(.) 时,没有来自数据库的结果。
例如
http://localhost:8080/WhoToSubscribe/subscribe/anshul007
但是当我使用这个网址时
http://localhost:8080/WhoToSubscribe/subscribe/nadeem.ahmad095
它不工作,因为它包含点(。)
这是我的控制器
@RequestMapping(value = "/uname", method = RequestMethod.GET)
public @ResponseBody
List<Profession> getSubscriber(@PathVariable("uname") String uname)
List<Profession> pro = null;
try
pro = subscribeService.getProfessionById(uname);
catch (Exception e)
e.printStackTrace();
return pro;
这是我的DAO课程
@SuppressWarnings("unchecked")
public List<Profession> getProfessionById(String uname) throws Exception
session = sessionFactory.openSession();
session.beginTransaction();
String queryString = "from Profession where username = :uname";
Query query = session.createQuery(queryString);
query.setString("uname", uname);
//List<Profession> queryResult = (List<Profession>) query.uniqueResult();
session.getTransaction().commit();
return query.list();
【问题讨论】:
你使用的是哪个春季版本? ***.com/questions/16332092/… 的可能重复项 好的...但我无法理解这个问题 和你遇到的同样的问题有关 好的...但是我现在在下面的答案中得到了解决方案:) 【参考方案1】:将您的映射更改为/somepath/variable:.+
或在末尾添加一个斜线/somepath/variable/
【讨论】:
我试过但我有一个异常“'DefaultInlineConstraintResolver'类型的内联约束解析器无法解析以下内联约束:'.+'。 "【参考方案2】:作为@Jkikes 的替代答案,您通常可以将这种行为转变为:
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter
@Override
public void configurePathMatch(PathMatchConfigurer configurer)
configurer.setUseSuffixPatternMatch(false);
现在你可以在任何地方使用点了 :D
【讨论】:
以上是关于如何在spring中从rest url获取包含点(。)的参数的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Boot 应用程序中从 Angular JS 调用 Rest Services 时出错
如何在spring boot中从restful控制器返回一个html页面?
在spring boot应用程序中从自己的rest api调用另一个rest api
Django REST 框架。如何获取包含协议、域和路径的页面的完整 url?
如何在 Spring Boot 中制作可以重定向到 url 的 REST api
如何在 spring-cloud-gateway 合约测试中从 spring-cloud-contract 中设置带有 StubRunner 端口的 url