ModelAndView跳转页面后 页面脚本中如何获取跳转url 而不是请求url
时间: 2024-05-03 21:18:13 浏览: 131
如果你想获取跳转后的URL,而不是当前请求的URL,可以使用以下方法:
在Controller中,你可以使用ModelAndView的方法来设置重定向的URL,如下所示:
```java
@RequestMapping("/redirect")
public ModelAndView redirectWithModelAndView() {
ModelAndView modelAndView = new ModelAndView("redirect:/hello");
return modelAndView;
}
```
在上面的代码中,我们使用ModelAndView的构造函数来设置重定向的URL。在这里,我们将URL设置为“/hello”。
在JSP中,你可以使用JavaScript来获取当前URL,并在重定向后使用它。你可以使用以下代码来获取当前URL:
```javascript
var currentUrl = window.location.href;
```
然后,在重定向后,你可以将当前URL作为参数传递给重定向的URL。例如,如果你想将当前URL作为参数传递给重定向的URL,“/hello”,你可以使用以下代码:
```javascript
window.location.href = "/hello?currentUrl=" + encodeURIComponent(currentUrl);
```
在上面的代码中,我们将当前URL编码并将其作为参数传递给重定向的URL,“/hello”。
相关问题
返回的modelandview在新的tab上打开
返回的ModelAndView在Spring MVC框架中通常用于构建视图并传递数据给前端控制器处理。当你想要在一个新标签页(Tab)上展示模型和视图时,你可以这样做:
1. **创建Controller方法**:在你的后台控制器方法中,设置好`ModelAndView`对象。这包含了你需要显示的数据和要渲染的视图名称。
```java
@GetMapping("/new-tab")
public ModelAndView redirectToNewTab() {
Model model = new Model();
// 添加模型数据
model.addAttribute("key", "value");
// 视图名称,这里假设你有一个名为"myView"的JSP页面
String viewName = "myView";
return new ModelAndView(viewName, model);
}
```
2. **配置Thymeleaf或FreeMarker等模板引擎**:确保你已经配置了合适的视图解析器,以便Spring MVC能够找到对应的视图文件。
3. **跳转到新标签页**:为了在新标签页打开,你需要将这个返回的`ModelAndView`与JavaScript结合使用,比如使用`window.open()`函数。在前端,你可以添加如下的JS代码:
```javascript
$.ajax({
url: "/new-tab",
success: function(response) {
var modelAndView = JSON.parse(response); // 将ModelAndView对象转换为JSON
window.open(modelAndView.url, '_blank', 'noopener noreferrer');
}
});
```
在这个例子中,`response.url`包含生成的视图URL,`_blank`表示在新标签页中打开,`noopener`是为了安全考虑,防止恶意脚本获取对其他窗口的控制权。
阅读全文