gpt4 book ai didi

java - Spring MVC 3 使用 sitemesh 重定向/转发

转载 作者:行者123 更新时间:2023-12-01 05:48:23 24 4
gpt4 key购买 nike

大家好,

我正在使用 spring mvc 3 + sitemesh 和 spring security 3。我需要执行以下场景。我为绕过用户和普通用户使用两种不同的布局。我遵循的方法工作正常,直到我遇到一些 JavaScript 弹出窗口,因为我注意到页面加载了两次并弹出了同一个窗口两次。请验证我的方法。

Controller 类-

    @RequestMapping(value = "/mainMenu")
public class PortalController {

@RequestMapping(method = RequestMethod.GET)
public String byPassPortal() {

if (User.bypassMenu()) {
//return "redirect:user.html";
//return "forward:user.html";
return "/user/user";
} else {
// send user to the portal page
logger.debug("Redirect to the main page");
return "mainMenu";
}
}
}

站点网格装饰器 xml -

<decorators defaultdir="/decorators">
<decorator name="layout" page="layout.jsp">
<pattern>/user*</pattern>
</decorator>
<decorator name="default" page="default.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>

这是我的观察结果 - 如果我使用 return "redirect:user.html"; & return "forward:user.html";对于用户来说,它可以很好地使用正确的布局( layout.jsp ),因为装饰器会通过模式 <pattern>/user*</pattern> 捕获它。 。但问题是表单将加载两次,并且弹出窗口两次。

如果我使用return "forward:user.html";return "/user/user";弹出窗口只会出现一次,但布局错误。原因应该是它不会从 url 模式 <pattern>/user*</pattern> 的装饰器中捕获。并且它将使用错误的默认布局( default.jsp )。

我认为有一些东西需要从 spring 端处理,而不是从 sitemesh 处理。您能在这方面给予一些指导吗?预先感谢您。

最佳答案

我发现了这个问题。与 spring 或 sitemesh 无关。这完全是关于我使用的第二种布局。它包含两个 '' 标签,并且由 sitemesh 提交了两次。希望这对任何遇到此类错误的人有所帮助。 – Sam 0 秒前编辑

关于java - Spring MVC 3 使用 sitemesh 重定向/转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5313952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com