簡體   English   中英

如何從Spring中的rest url獲取包含點(。)的參數

[英]How to get parameter which is containing dot(.) from rest url in spring

我正在使用Spring REST和hibernate創建一個Web應用程序。 這里我使用來自url的唯一用戶名從數據庫中獲取記錄。 但問題是,如果我正在編寫簡單的字符串,那么它工作正常,但在用戶名時我正在寫點(。)然后沒有結果來自數據庫。

對於前者

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();
}

將映射更改為/somepath/{variable:.+}

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

作為@Jkikes回答的替代方案,您通常可以將此行為轉為:

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

  @Override
  public void configurePathMatch(PathMatchConfigurer configurer) {
    configurer.setUseSuffixPatternMatch(false);
  }

}

現在你可以到處使用點:D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM