我搜索了整个网站,但没有任何建议有效! 我正在尝试制作一个 spring-mvc 和 angularJS 应用程序;这是我的项目结构:
angularState
-src/main/java/it.controller.DefaultController.java
-src/main/webapp
--index.jsp
--WEB-INF
---dispatcher-servlet.xml
---web.xml
---static
----default.html
所以在我的 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>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/dispatcher-servlet.xml
</param-value>
</context-param>
在dispatcher-servlet.xml中:
<context:component-scan base-package="it.controller"></context:component-scan>
<mvc:annotation-driven />
<context:annotation-config />
<mvc:resources location="/WEB-INF/static/" mapping="/static/**" />
在index.jsp中:
<% response.sendRedirect("default"); %>
然后在 Controller 中:
@Controller
@RequestMapping("/default")
public class DefaultController {
public String showDefault(){
return "/static/default.html";
}
}
我一直用jsp,一切都很好;现在我已经尝试了该网站的每个问题: 我试过了 -mvc:默认 servlet 处理程序 -InternalResourceViewResolver 前缀为“/WEB-INF/static”,后缀为“.html”,甚至后缀为 void -InternalResourceViewResolver void 和返回“/WEB-INF/static/default.html”的 Controller 方法 没有什么! 没有显示default.html。为什么 .html 文件这么复杂!
最佳答案
这是因为通常 *.jsp 样式的 uri 模式由 servlet 容器处理,在您的情况下,*.html 不由容器处理,而是将路径委托(delegate)给 Spring MVC,Spring MVC 不知道如何渲染这些扩展 作为快速修复,您可以尝试conf/web.xml中的以下代码
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
或者
内容协商 View 解析器也可以用来代替InternalResourceViewResolver(我猜你可能正在使用这个),它根据“mediaTypes”属性中声明的文件扩展名返回合适的 View ) 示例
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="html" value="text/html"/>
</map>
</property>
关于java - spring mvc无法访问.html文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42223892/