我想知道如何在WEB-INF
的某个目录下直接访问JSP页面,而/
路径上运行Spring,而不编写任何控制器进行视图转发。
例如,我有一个项目myapp
结构如下:
src
WebRoot
`-- WEB-INF
|-- public
| `-- example.jsp
|-- views
现在,我想通过直接导航到example.jsp
来访问http://localhost/myapp/public/example
而不实施任何控制器。
到目前为止我已尝试过:
将<mvc:resources mapping="/public/**" location="/WEB-INF/public/"/>
添加到我的上下文xml中,但它刚刚工作,容器一直抱怨HTTP 404 - PAGE NOT FOUND /public/example.jsp
。
将内部资源视图解析程序添加到我的上下文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页面,因此为每个页面编写一个控制器将会很乏味。
有没有任何规范的方法可以做到这一点?请帮忙!
答案 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文件夹。