javascript如何获取在Spring Eleaf应用程序中调用控制器的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页面
# 1 楼答案
将HttpServletRequest对象添加到控制器方法的参数列表中,并在该控制器内对该对象调用getRequestURI()方法。该方法将返回一个字符串,其中包含请求URI的完整路径