2016-02-15 4 views
3

В Java-Джерси можно получить динамический путь к ресурсу, например.динамический путь к ресурсу в springmvc

локальный: 8080/вебсервис/это/есть/мой/динамический/путь

@GET 
@Path("{dynamicpath : .+}") 
@Produces(MediaType.APPLICATION_JSON)  
public String get(@PathParam("dynamicpath") String p_dynamicpath) { 
    return p_dynamicpath; 
} 

печатает: это/есть/мой/динамический/путь

Вопрос: как сделать это в Весенний MVC?

ответ

2

Для нескольких элементов внутри вашего пути вы можете получить доступ к динамическим значениям пути:

@RequestMapping(value="/**", method = RequestMethod.GET) 
public String get(HttpServletRequest request) throws Exception { 
    String dynPath = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); 
    System.out.println("Dynamic Path: " + dynPath); 
    return dynPath; 
} 

Если вы знаете заранее мотыгу много уровней переменного пути вы будете иметь вы можете кодировать их явно как

@RequestMapping(value="/{path1}/{path2}/**", method = RequestMethod.GET) 
public String get(@PathVariable("path1") String path1, 
      @PathVariable("path2") String path2, 
      HttpServletRequest request) throws Exception { 
    String dynPath = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); 
    System.out.println("Dynamic Path: " + dynPath); 
    return dynPath; 
} 

Если вы хотите увидеть строку, возвращаемую в вашем браузере, вы должны объявить метод @ResponseBody, а также (так струнный вы возвращаете это содержание вашего ответа):

@RequestMapping(value="/**", method = RequestMethod.GET, produces = "text/plain") 
@ResponseBody 
public String get(HttpServletRequest request) throws Exception { 
+0

спасибо! теперь, по какой-то причине, мой webapp меняется на WEB-INF/jsp/my/signed/path.jsp ... :-) должна быть некоторая ошибка конфигурации, я думаю ... – user3601578

+0

Нет, это просто Spring MVC, * view ** вы вернули (строка пути) – Jan

+1

См. мое редактирование о том, как получить строку в качестве ответа в браузере – Jan

Смежные вопросы