繁体   English   中英

Spring - 请求的资源不可用

[英]Spring - The requested resource is not available

我正在尝试使用Spring MVC构建一个基本的Java应用程序,但是,我在应用程序中遇到了链接问题。

这是我的web.xml

<servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/test-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/</url-pattern>
    <url-pattern>/welcome.jsp</url-pattern>
    <url-pattern>/welcome.html</url-pattern>
</servlet-mapping>

我的test-servlet.xml

<mvc:annotation-driven />
<mvc:default-servlet-handler/>
<context:component-scan base-package="com.springtest.controller"/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">

    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix">
        <value>./WEB-INF/jsp/</value>
    </property>
    <property name="suffix">
        <value>.jsp </value>
    </property>

</bean>

运行应用程序时显示的第一个页面如下:

<html>
<head>
    <title>Spring MVC Tutorial</title>
</head>
<body>
<br>
<div style="text-align:center">
    <h3>
        <a href="welcome">Click to say hello </a>
    </h3>
</div>
</body>
</html>

而welcome.jsp是这样的:

<html>
<head>
    <title>Hello World MVC</title>

</head>
<body>${message}

</body>
</html>

因为这是我第一次使用Spring(我知道这里有很多问题要求/回答这个问题 - 因此我找不到能帮助我的答案),我遵循了一个在线教程

我的文件夹结构类似于他们在教程中的内容,但是,每次单击链接转到第二页时,我都会收到404错误说:

/SpringTutorial-1.0-SNAPSHOT/WEB-INF/jsp/welcome.jsp - is not available
  1. 基本上/<url-pattern>标签中就/welcome.html 。它将采用/welcome.jsp/welcome.html

     <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> 
  2. 无需在prefix value属性中给出相对路径。

     <property name="prefix"> <value>/WEB-INF/jsp/</value> </property> 

还有一件事是你也可以使用InternalResourceViewResolver代替UrlBasedViewResolver

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

将表单操作更改为welcome.html

<html>
<head>
    <title>Spring MVC Tutorial</title>
</head>
<body>
<br>
<div style="text-align:center">
    <h3>
        <a href="welcome.html">Click to say hello </a>
    </h3>
</div>
</body>
</html>

also change url pattern to / or *.html


<servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/test-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>

also view resolver to internal resource view resolver and avoid giving relative url in it.

还要确保您已经给出@controller注释。 和URL映射为@requestmapping(“/ welcome”)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM