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

如何获取包含点(.)的参数从spring中的rest url

戈曾琪
2023-03-14

我正在使用Spring、REST和Hibernate创建一个web应用程序。在这里,我从数据库中提取记录使用唯一的用户名,这是来自URL。但问题是,如果我写的是简单字符串,那么它可以正常工作,但在username中,我写的是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();
}

共有1个答案

关正雅
2023-03-14

将映射更改为/somepath/{variable:.+}

或在结尾处添加斜杠/somepath/{variable}/

 类似资料:
  • 我需要从url得到字符串在哪里是“?”但是控制器不接受“?” 我需要发送一些类似“你好世界?”但我只得到“你好世界” 我找到了点(.)的解决方案--value=“{texttoTransform:.+}”

  • 问题内容: 我的应用程序中有一个奇怪的异常,我想记录它发生的时间,并包括完整的请求字符串(包括参数)。 当我尝试 我得到了请求字符串,但没有得到包含的参数?和&。 例: 我只看到 我可以把整个字符串放在某个地方吗? 问题答案: 参见HttpServletRequest#getQueryString() 如果需要整个字符串,则必须将请求url和查询字符串附加在一起,因为没有方法可以获取整个字符串。

  • 问题内容: 我有这样的网址: 如何获取章节和帖子的参数值​​? 我的URL在Chapter参数的值中包含“&”。 问题答案: 您可以在Android中使用Uri类来完成此操作; https://developer.android.com/reference/android/net/Uri.html 这样,您甚至可以从查询参数中获取特定元素;

  • 以下几年前的帖子概述了在testng套件xml中指定方法级参数的可能性: 例如,需要将ID传递给方法,该方法将是唯一的(每个配置): 这还有可能吗?我没有看到它提到在测试留档。(我需要在方法级别包括一个特定的参数,而不是测试级别) 如果这是可能的,我如何获得方法参数的值,因为它似乎没有在测试用例类文件中使用@Parameters获得。 引用的帖子确实指使用: 但是,如果这仍然适用,一些关于将其放在

  • 问题内容: 我正在为SQLException编写通用记录器,我想获取传递给PreparedStatement的参数,该怎么做?我能够得到他们的数量。 问题答案: 简短的回答:不能。 长答案:所有JDBC驱动程序都会将参数值保留在某个地方,但是没有标准的方法来获取它们。 如果要出于调试或类似目的而打印它们,则有几种选择: 创建一个传递JDBC驱动程序(使用p6spy或log4jdbc作为基础),该驱

  • 我有这个endpoint(删除了所有不相关的endpoint),我想看看如何直接从参数映射中获取文件名列表: 第一个@RequestParam是使“file”参数成为必需的, 第二个@RequestParam是将所有参数放入映射中,而不是单独获取 即。:http://localhost:8080/files?file=first