jsp:include指向控制器方法不能在控制器上返回

时间:2017-11-02 13:30:36

标签: java jsp menu controller include

我在每个视图上使用JSP:include标签来显示我的菜单。昨天我发现你实际上可以包含一个非常整洁的控制器方法,因为它允许我在返回菜单之前进行一些处理。我正在做的是我将其添加到每个页面:

<jsp:include page="/menu/showMenu"/>

我曾经这样做过:

<%@ include file="menu.jsp" %>

此更改允许我在返回菜单时将布尔值传递给模型,我用它来显示或不显示某些选项,具体取决于用户有权访问的内容。这在第一次加载页面时非常有效,但在完成任何类型的控制器处理时菜单完全消失。例如,我有一个日志页面,其中的表格显示了数据库中的日志条目。列标题包含搜索字段,这些字段是表单的一部分,在提交时,调用控制器方法来过滤日志列表并显示过滤后的数据。该控制器方法的return语句只是:

return "logs";

当使用指向实际JSP文件而不是控制器方法的原始include时,这非常有效,但是当使用包含控制器方法的新方法时,菜单在过滤逻辑返回页面时消失。我可以随时做的是包括我以前的JSP文件并直接将服务调用放在JSP中以检查用户是否可以访问每个函数但我真的更喜欢让控制器执行这些操作并传递布尔值的想法到JSP。

知道为什么我会看到这种行为吗?如有必要,我可以提供代码示例。

谢谢!

1 个答案:

答案 0 :(得分:0)

我明白了!我不得不在我的菜单控制器中添加一个POST方法。它与GET方法完全相同,但是当包含在从另一个控制器的POST方法返回的页面中时,它是必需的。希望这可以帮助别人!