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

时间:2011-05-06 05:32:07

标签: jsp spring-mvc jstl

我正在使用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>

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

2 个答案:

答案 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"/>