当前位置: 首页 > 知识库问答 >
问题:

make.html默认视图spring mvc

翟兴邦
2023-03-14

有一个示例应用程序并创建了一个

view/HelloWorld.html

页面。从我的控制器,我返回以下内容

public String home(Locale locale, Model model) {
    return "HelloWorld";
}

在调试模式下,我收到这个警告/错误:

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/HelloWorld/WEB-INF/views/HelloWorld.html] in DispatcherServlet with name 'appServlet'

我的src/main/webapp/WEB-INF/spring/appServlet/servlet-context的内容.xml

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->

<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />

<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".html" />
</beans:bean>

如果我将.html重命名为 .jsp 并将上面更改为 .jsp,那么一切正常。

共有2个答案

满自明
2023-03-14

html和jsp有很多不同之处。Java服务器页面被编译成Java的“servlet”。它可以调用bean和企业bean,如JavaBeans组件和企业JavaBeans组件,在服务器上执行处理。因此,拥有这样的JSP技术可能是基于Web的应用程序的高级架构中的一个关键组件。

金皓君
2023-03-14

servlet容器处理该请求的流程如下:

  1. 首先,Servlet容器调用DispatcherServlet
  2. DispatcherServlet找到映射到Controller的home方法的映射,home方法返回视图名“HelloWorld”
  3. 现在,DispatcherServlet使用视图解析器(您的<code>InternalResourceViewResolver</code>)来查找要通过其呈现模型的视图,因为名称是“HelloWorld”,所以它映射到<code>/WEB-INF/View/HelloWorld。html</code>视图
  4. 现在基本上调用了RequestDispatcher.forward(“/WEB-INF/views/HelloWorld.html”,…
  5. 此时,Servlet容器试图找到能够处理/WEB-INF/views/HellowWorld的Servlet。htmluri-如果它是。jsp注册了一个JSPServlet,它可以处理呈现jsp,但是对于*。html没有注册servlet,因此调用以“defaultservlet”结束,它使用/servlet映射注册,可能您的DispatcherServlet就是这样的。
  6. 现在,Dispatcher servlet找不到控制器来处理/WEB-INF/views/HelloWorld的请求。html</code>,因此您看到的消息

如果您希望servlet容器处理这种扩展,比如说tomcat,您可以注册< code>*。html扩展由JSPServlet处理,然后它应该可以干净地工作。或者返回< code > forward:/resources/hello world . html ,该文件将被视为相对于< code>resources文件夹的静态文件。

 类似资料:
  • 操作步骤: ①登录账号进入工作台,选择地图点击编辑进入编辑地图页面,点击锁定默认视图。 提示 ●锁定视图后,退出地图再次进入显示默认锁定的视图。 操作动图: [查看原图]

  • 我使用的是Spring Boot(V1.3.5.Release)。在文档中,有一个关于错误处理的简短部分: Spring Boot默认提供/error映射,以合理的方式处理所有错误,并在servlet容器中注册为“全局”错误页。对于机器客户机,它将生成一个JSON响应,其中包含错误、HTTP状态和异常消息的详细信息。对于浏览器客户端,有一个“whitelabel”错误视图,它以HTML格式呈现相同

  • 当我添加“spring boot Web Starter”时,在spring boot中默认使用哪种视图技术。如果我想使用JSP,我需要为Thymeleaf模板包含'tomcat-embed-jasper'或'spring Boot Thymeleaf starter'。所以我想知道'Spring Boot Web Starter'的默认视图技术是什么

  • 我使用远程桌面访问Windows 8 PC。 在我的MVC 4控制器中,我在第一个请求中得到了以下代码: 但当我使用远程桌面登录到Windows 8 PC时,Internet Explorer默认为版本7(兼容性视图): 火狐/4.0 (兼容;微软 7.0;视窗 NT 6.2;哇64;三叉戟/6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR

  • Java是否提供了可用于每个Swing和JavaFX框架的扩展默认图标包?我的意思是箭头,警告,文件,错误,通知,形状,手…

  • 接口说明 设置场景默认视角 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/viewpoint/1.0.0/setSceneDefault 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dId string form 是 场景ID directionx number form 是 相机位置,从cam