Java 如何使用Spring加载直接访问JSP页面?
我想知道如何直接访问Java 如何使用Spring加载直接访问JSP页面?,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我想知道如何直接访问WEB-INF目录下的JSP页面,Spring在/路径上运行,而无需编写任何用于视图转发的控制器 例如,我有一个项目myapp,结构如下: src WebRoot `-- WEB-INF |-- public | `-- example.jsp |-- views 现在,我想通过直接导航到example.jsp来访问example.jsphttp://localhost/myapp/public/example无需实施任何控制器 到目前为止,我所
WEB-INF
目录下的JSP页面,Spring在/
路径上运行,而无需编写任何用于视图转发的控制器
例如,我有一个项目myapp
,结构如下:
src
WebRoot
`-- WEB-INF
|-- public
| `-- example.jsp
|-- views
现在,我想通过直接导航到example.jsp来访问example.jsp
http://localhost/myapp/public/example
无需实施任何控制器
到目前为止,我所尝试的:
添加到我的上下文xml中,但它就是不起作用,容器不断抱怨HTTP 404-PAGE NOT FOUND/public/example.jsp
<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/
.jsp
但我不确定下一步该做什么,我可能会将许多JSP页面放在/WEB-INF/public
下,因此为每个页面编写一个控制器将是一件乏味的事情有什么标准的方法可以做到这一点吗?请帮忙 在dispatcher servlet中尝试类似的操作:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
其中jsp文件夹包含您的jsp文件。从控制器可以直接使用jsp名称。您无需提及符合上述定义的jsp文件夹。Spring mvc我们有一个选项
当您在浏览器中键入/时,这会重定向example.jsp页面我想直接从浏览器访问jsp页面,而不实现任何控制器,上面的操作会起作用吗?您已经标记了spring mvc,其中“c”代表控制器。。。您应该使用controller进行请求映射并加载JSP。如果只有一个自包含的JSP页面,我希望用户直接访问该页面,就像访问静态资源的方式一样,我该怎么做?您想这样做:我是对的吗?@T.Jung问题已更新。您甚至不应该尝试这样做。如果需要直接访问JSP,则应将其存储在WEB-INF之外。JSP不是静态资源。它由servlet容器编译成servlet,编译后的代码由servlet容器调用。@SergeBallesta你说得很好,但我只是好奇。它解决了我的问题,尽管如此,视图名称应该是
public/example
@JerryChin:
行确实声明了一个控制器来服务视图…@SergeBallesta,但在我的例子中,这是解决问题的最简单方法。你不这么认为吗?@JerryChin:当然是,这是SpringMVC的方式!我误解了您的需求,认为您实际上希望直接为JSP提供服务,而不需要任何控制器。这里有一个,但它完全由Spring提供,所以您不必自己实现它。