如何从jsp页面包含一个控制器

R4j*_*R4j 2 jsp jstl spring-mvc

我正在使用Spring MVC.

我想在我的主页面中包含一个带有控制器(名为MenuController)的菜单页面(名为menu.jsp).如果我调用http:// localhost:8080/myWeb/menu.htm 一切都很好.但我尝试将菜单包含在我的主页中,如下所示:

<c:import url="menu.jsp"></c:import>
   Or  <c:import url="menu.htm"></c:import>
Run Code Online (Sandbox Code Playgroud)

它什么都没显示

这是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>
Run Code Online (Sandbox Code Playgroud)

和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>
Run Code Online (Sandbox Code Playgroud)

我哪里错了?请帮我.谢谢!

Boz*_*zho 5

尝试使用<%@ include file="menu.jsp" %><jsp:include page="menu.jsp" />

顺便说一句,这里没有控制器干扰 - 这纯粹在视图中发生.

另一方面,如果您希望控制器设置菜单中所需的一些数据,那么您确实应该使用<c:import />.然而,那里的路径不是相对于当前页面.所以要确保它是正确的.