javascript - 如何在 Spring thymeleaf 应用程序中获取调用控制器的 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 页面。
解决方案
将 HttpServletRequest 对象添加到控制器方法的参数列表中,并在该控制器内对该对象调用 getRequestURI() 方法。这应该可以完成工作 - 该方法返回一个包含请求 URI 完整路径的字符串
推荐阅读
- python - 如何将 DataFrame 的字典转换为单独的 DataFrame(Python、Pandas)
- azure - 是否可以在 AzureAppService 接收电子邮件:[用户名]@[appserviceUrl 域]?
- c# - 下拉 asp.net core 设置选中项
- git - 我可以从两个或多个位置以同一用户的身份开发 git repo 吗?
- azure - 如何导出 Azure 分析数据
- spring - spring boot地址和端口号问题
- python - 有没有办法使用熊猫根据长度在字符串的字符之间插入空格?
- r - 如何使用 R & Java 构建 Dockerfile
- sql-server - 如何查找本地 MS SQL Server 的列表?
- javascript - 段落中的 Javascript 正则表达式匹配字符串,不包括 url