如何用Spring加载直接访问JSP页面?

时间:2017-03-06 05:20:11

标签: java spring jsp spring-mvc

我想知道如何在WEB-INF的某个目录下直接访问JSP页面,而/路径上运行Spring,而不编写任何控制器进行视图转发。

例如,我有一个项目myapp结构如下:

src
WebRoot
`-- WEB-INF
    |-- public
    |   `-- example.jsp
    |-- views

现在,我想通过直接导航到example.jsp来访问http://localhost/myapp/public/example而不实施任何控制器。

到目前为止我已尝试过:

  1. <mvc:resources mapping="/public/**" location="/WEB-INF/public/"/>添加到我的上下文xml中,但它刚刚工作,容器一直抱怨HTTP 404 - PAGE NOT FOUND /public/example.jsp

  2. 将内部资源视图解析程序添加到我的上下文xml。

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/WEB-INF/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
    

    但是我不确定接下来要做什么,我可能会在/WEB-INF/public下放置许多JSP页面,因此为每个页面编写一个控制器将会很乏味。

  3. 有没有任何规范的方法可以做到这一点?请帮忙!

2 个答案:

答案 0 :(得分:1)

Spring mvc我们有一个选择 <mvc:view-controller path="/" view-name="example"/>

当您在浏览器中键入/时,会重定向example.jsp页面

答案 1 :(得分:0)

在调度程序servlet中尝试类似的东西:

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/jsp/"
      p:suffix=".jsp" />

jsp文件夹中包含jsp文件。从控制器,您可以直接使用jsp名称。你不需要提到上面定义的jsp文件夹。