我有两个页面链接到同一个新页面。我需要做的是传递当前页面,这样新页面就可以在完成需要完成的操作后返回到它。
假设我有两页:/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的完整路径