如何获取在Spring thymelaf应用程序中调用控制器的url



我有两个页面链接到同一个新页面。我需要做的是传递当前页面,这样新页面就可以在完成需要完成的操作后返回到它。

假设我有两页:/user/46#updateInfo/child/993#updateInfo

两个页面都有一个按钮<a id="upload-image" th:href="@{/documents/upload/__${id}__}" class="btn btn-primary"> Upload Image </a>触发控制器:

@GetMapping({documentType}/{userId})
public ModelAndView uploadImage(ModelAndView mav, 
@PathVariable(name="documentType") Optional<DocumentType> documentType, 
@PathVariable(name="userId") Optional<String> userId,
@RequestParam(name="returnUrl") Optional<String> returnUrl) {
// do stuff here
mav.addObject("returnUrl", returnUrl);
mav.setViewName("uploadImages");
return mav;
}

我试着用上传按钮在页面的脚本部分添加以下内容:

$(document).ready(function() {
$('#upload-image').prop("value", window.location.pathname + window.location.hash);
$('#upload-image').prop("returnUrl", window.location.pathname + window.location.hash);
}

但该值不会显示在控制器中。我认为必须有一个更简单的方法。

同样,目标是当加载新页面(在本例中为uploadImages页面(时,用户将上传图像或单击"取消"按钮,然后返回到/user/46#updateInfo/child/993#updateInfo页面,该页面最初称为uploadImages页面。

将HttpServlet请求对象添加到控制器方法的参数列表中,并在该控制器内的该对象上调用getRequestURI((方法。这就完成了任务——该方法返回一个String,其中包含请求的URI的完整路径

相关内容

最新更新