我正在使用Spring MVC。
我想将菜单页面(名为menu.jsp)与控制器(名为MenuController)包含在我的主页面中。 如果我打电话http://localhost:8080/myWeb/menu.htm一切都很好。 但我尝试将菜单包含在我的主页中,如下所示:
<c:import url="menu.jsp"></c:import>
Or <c:import url="menu.htm"></c:import>
它什么都没有显示
这是dispatcher-servlet.xml文件中的config:
<mvc:annotation-driven />
<context:component-scan base-package="controllers" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
和web.xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
我哪里错了?请帮我。谢谢!
答案 0 :(得分:5)
尝试使用<%@ include file="menu.jsp" %>
或<jsp:include page="menu.jsp" />
顺便说一句,这里没有控制器干扰 - 这纯粹在视图中发生。
另一方面,如果您希望控制器设置菜单中所需的一些数据,那么您确实应该使用<c:import />
。然而,那里的路径不是相对于当前页面。所以要确保它是正确的。
答案 1 :(得分:1)
我今天刚发现你可以通过引用include中的相对Spring url来触发控制器。
<jsp:include page="/ConrollerRequestMapping/your/method/request/mapping"/>