加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Spring MVC – jsp无法渲染

发布时间:2020-12-15 08:31:04 所属栏目:Java 来源:网络整理
导读:我刚刚开始尝试使用 Spring MVC创建一个新项目,并且遇到了一个问题,没有任何手册或教程似乎有帮助…… 我已经设置了一个没有逻辑的简单应用程序,只是尝试正确配置Spring.控制器只返回要显示的视图的名称,但视图解析器不呈现jsp,并返回404错误…. 任何帮助是
我刚刚开始尝试使用 Spring MVC创建一个新项目,并且遇到了一个问题,没有任何手册或教程似乎有帮助……

我已经设置了一个没有逻辑的简单应用程序,只是尝试正确配置Spring.控制器只返回要显示的视图的名称,但视图解析器不呈现jsp,并返回404错误….

任何帮助是极大的赞赏.

我的web.xml是:

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>openstats</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>openstats</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <display-name>OpenStats API Server</display-name>
</web-app>

我的openstats-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <context:component-scan base-package="org.openstats.api.controller"/>

    <!-- Enable to request mappings PER METHOD -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

    <!-- Enable annotated POJO @Controller -->
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>

    <!-- Define the view resolver to use jsp files within the jsp folder -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
        <property name="prefix"><value>/jsp/</value></property>
        <property name="suffix"><value>.jsp</value></property>
    </bean>
</beans>

控制器本身没有任何逻辑,它只是:

@Controller
public class ProductController {

    @RequestMapping(value = "/products.do",method = RequestMethod.GET)
    public ModelAndView listProducts(HttpServletRequest request) {

        ModelAndView model = new ModelAndView("index");
        return model;
    }
}

到达控制器,问题是在尝试渲染时……

我在调试中设置了log4j,这是我得到的一部分:

02:08:19,702 DEBUG
DispatcherServlet:1094 – Testing handler adapter
[org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter@397b6074]
02:08:19,803 DEBUG
HandlerMethodInvoker:134 – Invoking
request handler method: public org.springframework.web.servlet.ModelAndView
org.openstats.api.controller.ProductController.listProducts(javax.servlet.http.HttpServletRequest)
02:08:19,833 DEBUG
DefaultListableBeanFactory:1367 –
Invoking afterPropertiesSet() on bean
with name ‘index’ 02:08:19,876 DEBUG
InternalResourceViewResolver:81 –
Cached view [index] 02:08:19,877 DEBUG
DispatcherServlet:1181 – Rendering
view
[org.springframework.web.servlet.view.JstlView:
name ‘index’; URL [/jsp/index.jsp]] in
DispatcherServlet with name
‘openstats’ 02:08:19,877 DEBUG
JstlView:240 – Rendering view with
name ‘index’ with model {} and static
attributes {} 02:08:19,923 DEBUG
JstlView:234 – Forwarding to resource
[/jsp/index.jsp] in
InternalResourceView ‘index’
02:08:19,926 DEBUG
DispatcherServlet:955 –
DispatcherServlet with name
‘openstats’ determining Last-Modified
value for [/api-server/jsp/index.jsp]
02:08:19,927 DEBUG
DispatcherServlet:1054 – Testing
handler map
[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping@440c4cee]
in DispatcherServlet with name
‘openstats’ 02:08:19,928 DEBUG
DefaultAnnotationHandlerMapping:179 –
No handler mapping found for
[/jsp/index.jsp] 02:08:19,929 DEBUG
DispatcherServlet:962 – No handler
found in getLastModified 02:08:19,937
DEBUG DispatcherServlet:781 –
DispatcherServlet with name
‘openstats’ processing request for
[/api-server/jsp/index.jsp]
02:08:19,938 DEBUG
DispatcherServlet:843 – Bound request
context to thread: GET
/api-server/products.do HTTP/1.1

我的jsp文件夹在“webapp”中,并且index.jsp文件存在.

提前致谢.

解决方法

我对Spring 3.x也有同样的问题.
到目前为止有进展吗?

编辑:
我自己想通了:-)我使用了以下servletmapping:

<servlet-mapping>
    <servlet-name>spring-frontcontroller</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

将url-pattern编辑为例如* .do修复了不呈现JSP的问题.但这就留下了一个问题,即你的url模式是如何实现的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读