我正在尝试使用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(我知道这里有很多问题要求/回答这个问题 - 因此我找不到能帮助我的答案),我跟着{{3} }。
我的文件夹结构与他们在教程中的内容类似,但是,每次单击链接转到第二页时,我都会收到404错误说:
/SpringTutorial-1.0-SNAPSHOT/WEB-INF/jsp/welcome.jsp - is not available
答案 0 :(得分:0)
/
代码中的<url-pattern>
基本上就足够了。我需要/welcome.jsp
或/welcome.html
。
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
无需在value
的{{1}}属性中提供相对路径。
prefix
还有一件事是你也可以尝试用<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
代替InternalResourceViewResolver
。
UrlBasedViewResolver
答案 1 :(得分:0)
将表单操作更改为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( “/欢迎”)