ModelAndView跳转页面后 页面脚本中如何获取跳转url 而不是请求url
时间: 2024-05-03 13:18:13 浏览: 11
如果你想获取跳转后的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跳转页面后 页面如何获取跳转url 而不是请求url
在 Spring MVC 中,可以通过 `ModelAndView` 对象的 `getViewName()` 方法获取跳转的视图名称,然后再结合视图解析器解析出完整的跳转 URL。
例如,在控制器中返回一个 ModelAndView 对象:
```java
@RequestMapping("/login")
public ModelAndView login() {
ModelAndView mav = new ModelAndView();
mav.setViewName("login"); // 设置跳转的视图名称
return mav;
}
```
然后在视图中可以使用 EL 表达式获取跳转 URL:
```jsp
<a href="${pageContext.request.contextPath}/${login}">跳转到登录页面</a>
```
或者在控制器中通过 `HttpServletRequest` 对象获取上下文路径,再拼接跳转 URL:
```java
@RequestMapping("/login")
public ModelAndView login(HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
mav.setViewName("login"); // 设置跳转的视图名称
String contextPath = request.getContextPath(); // 获取上下文路径
String url = contextPath + "/login"; // 拼接跳转 URL
mav.addObject("url", url); // 将跳转 URL 添加到 ModelAndView 对象中
return mav;
}
```
然后在视图中可以使用 `${url}` 获取跳转 URL:
```jsp
<a href="${url}">跳转到登录页面</a>
```
ModelAndView 判断用户是否登录,如果没登陆跳转到登录页面
在Controller中使用以下代码可以判断用户是否已登录,如果未登录则重定向到登录页面:
```
@RequestMapping("/example")
public ModelAndView example(HttpServletRequest request) {
ModelAndView modelAndView = new ModelAndView();
// 判断用户是否已登录
if (request.getSession().getAttribute("user") == null) {
// 未登录,重定向到登录页面
modelAndView.setViewName("redirect:/login");
} else {
// 已登录,继续处理请求
// ...
modelAndView.setViewName("example");
}
return modelAndView;
}
```
其中,"user"为保存在Session中的用户信息,"login"为登录页面的URL。如果用户未登录,将会跳转到登录页面。