Сгенерировать действительный URL hdiv в контроллере - PullRequest
0 голосов
/ 05 сентября 2018

Я успешно настроил Spring Boot 2.0.4 для использования Spring-Security с HDIV. Я решил использовать jquery datatable в качестве технологии рендеринга таблиц. Вот и проблема ... Для каждой строки моей таблицы данных я хотел бы создать подробную ссылку, подписанную параметром _HDIV_STATE_, как я могу сгенерировать действительную ссылку при выполнении итерации моего списка элементов в контроллере?

Универсальный контроллер:

@Controller
public class ItemController {

   ....

   @GetMapping(value = "/test")
   public @ResponseBody test() {
      List<Item> items = service.getList();
      items.foreach(item -> {
         item.setDetailUrl(HDIV_GENERATED_URL);
      })
    }

   ...

  }

Спасибо

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Хорошо, это решение отлично работает только с ulrs с pathvariable.

@Autowired
ServletContext context;

public @ResponseBody String test() {
  int id = 1;
  LinukUrlProcessor lup = HDIVUtil.getLinkUrlProcessor(context);
  RequestContextHolder rch =HDIVUtil.getRequestContext(context);
  //This works perfectly
  String processedWithPath = lup.processUrl(rch, "/test" + id);
  //This produce a _HVID_STATE_ but query param always 0
  String processedWithQuery = lup.processUrl(rch, "/test?id=" + id);
  return ....
}

Любая дальнейшая помощь в создании действительного URL с параметрами запроса?

0 голосов
/ 06 сентября 2018

Вы можете добавить класс LinkUrlProcessor в контроллер.

@autowired
LinkUrlProcessor linkUrlProcessor;

И вызвать processUrl метод.

String processedUrl linkUrlProcessor.processUrl(request, originalUrl);

processedUrl будет содержать параметр _HDIV_STATE_.

...