问候所有人,
我正在使用spring mvc 3 + sitemesh和spring security 3.我需要做以下场景。 我正在为绕过用户和普通用户使用2种不同的布局。我遵循的方法工作正常,直到我遇到一些JavaScript弹出窗口,因为我注意到页面加载两次并弹出相同的窗口两次。请验证我的方法。
控制器类 -
@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";
&amp; return "forward:user.html";
它为用户提供了正确的布局(layout.jsp
),因为decorator将通过模式<pattern>/user*</pattern>
捕获它。但问题是表格将加载两次,我得到弹出两次。
如果我使用return "forward:user.html";
或return "/user/user";
弹出窗口只会出现一次,但布局错误。因为它不会从装饰器中捕获到url模式<pattern>/user*</pattern>
而且它会使用错误的默认布局(default.jsp
)。
我认为有一些东西可以从春天来处理,而不是从sitemesh处理。你可以在这方面给一些指导吗?提前谢谢。
答案 0 :(得分:0)
我发现了这个问题。这与spring或sitemesh无关。这是关于我正在使用的第二个布局。它包含两个''标签,并由sitemesh提交两次。希望这对任何有这种错误的人都有帮助。 - Sam 0秒前编辑