在控制器中生成有效的hdiv url

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在控制器中生成有效的hdiv url相关的知识,希望对你有一定的参考价值。

我已成功配置Spring Boot 2.0.4以使用带有HDIV的spring-security。我决定使用jquery数据表作为表格渲染技术。问题出现了...对于我的数据表的每一行,我想创建一个用_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);
      })
    }

   ...

  }

谢谢

答案

您可以在控制器中注入LinkUrlProcessor类。

@autowired
LinkUrlProcessor linkUrlProcessor;

并调用processUrl方法。

String processedUrl linkUrlProcessor.processUrl(request, originalUrl);

processedUrl将包含_HDIV_STATE_参数。

另一答案

好的,这个解决方案只适用于带路径变量的ulrs。

@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吗?

以上是关于在控制器中生成有效的hdiv url的主要内容,如果未能解决你的问题,请参考以下文章

为什么我不能在此片段中生成唯一对象数组?

使用在另一个片段(NPE)中生成的值设置片段的 TextView [重复]

如何在 Python 中生成 Azure blob SAS URL?

如何在 Zend Framework 中生成用于重置密码的随机密码或临时 URL?

编写一个关于Java Bean类url,包括:name(名称)site(官网)和property(性质)等属性。在控制器方法中生成一组Url,并在页面中返回。

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法