【问题标题】:Pretty URL Mapping with Spring 3.0Spring 3.0 的漂亮 URL 映射
【发布时间】:2013-06-10 19:40:21
【问题描述】:

尝试将名为“new”的 URL 路径映射到执行某些逻辑的 Controller 方法时出现以下错误,然后显示视图“index.jsp”:

警告:在名称为“springguestbook”的 DispatcherServlet 中找不到带有 URI [/springguestbook/index.jsp] 的 HTTP 请求的映射

这是我的控制器方法:

@RequestMapping(value = "/list", method = RequestMethod.GET)
public String showGuestbookEntries(HttpServletRequest request, Model model) {
    HttpSession session = request.getSession(true);
    this.guestbookService = GuestbookService.getInstance(session);
    model.addAttribute("guestbookEntries",
            guestbookService.getGuestbookEntries());

    return "index";

}

这些是我的 web.xml 文件的内容:

<display-name>Spring Guestbook</display-name>

<servlet>
    <servlet-name>springguestbook</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springguestbook</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

这是我的 ViewResolver 的配置:

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

在我看来,该方法并没有实际读取 index.jsp 的内容并显示它们,而是重定向到 index.jsp。 我该如何解决这个问题?

【问题讨论】:

    标签: controller spring-3


    【解决方案1】:

    两件事:

    1. 尝试将您的 servlet 映射更改为此(将 /* 更改为 /):

      <servlet-mapping>
          <servlet-name>springguestbook</servlet-name>
          <url-pattern>/</url-pattern>
      </servlet-mapping>
      
    2. 确保您使用的是可以找到您的 JSP 的视图解析器,例如 InternalResourceViewResolver

      @Bean
      public ViewResolver viewResolver() {
          InternalResourceViewResolver b = new InternalResourceViewResolver();
          b.setPrefix("/WEB-INF/jsp/");
          b.setSuffix(".jsp");
          return b;
      }
      

        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
    

    【讨论】:

    • 我并不是要贪婪,但你介意给我的答案投赞成票吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2016-06-25
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多