我刚开始给Spring MVC看一看,所以我真的不知道我在做什么。因此,我开始在youtube上关注一系列tutorials。我一步一步地跟着他们,只是因为我使用STS而不是og Eclipse,但我把项目设置得像tut所以我不明白为什么它会重要。
最后我们制作一个index.jsp
页面,重新启动服务器,然后导航到localhost:8080/index.html
,这就是我的问题"开始。我必须使用localhost:8080/test/index.html
以避免404
错误。
我认为答案有点显而易见,但我不清楚为什么我的不同之处,即使我遵循它,名字一边,确切地说。
如何将我的网址设为localhost:8080/*
?我不想包含/test/
。
pom.xml的开头:
<modelVersion>4.0.0</modelVersion>
<groupId>my.name.spring.test</groupId>
<artifactId>blog-aggregator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>blog-aggregator</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.htm</url-pattern>
<url-pattern>*.json</url-pattern>
<url-pattern>*.xml</url-pattern>
</servlet-mapping>
</web-app>
IndexController.java:
@Controller
public class IndexController {
@RequestMapping("/index")
public String index() {
return "/WEB-INF/jsp/index.jsp";
}
}
调度-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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<context:component-scan base-package="wilk.robert.spring.test.controller" />
</beans>
我猜它与我的基础包有关,但这似乎限制了我的包装可以;这听起来不对(记得我一无所知!)。
如果有任何重要代码丢失,我会立即添加。
答案 0 :(得分:1)
将您的战争重命名为ROOT.war然后再部署
如果webapp名为root.war,或者该目录名为root /,则Jetty会在/ context上部署它。
将下一行添加到pom.xml以重命名war文件:
<build>
<finalName>ROOT</finalName>
</build>
如果您使用的是jetty插件,请修改您的插件配置,如下面的代码:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.22</version>
<configuration>
<contextPath>/</contextPath>
</configuration>
...
</plugin>
答案 1 :(得分:1)
您需要将您的webapp设为ROOT应用。最简单的方法是将您的war文件命名为ROOT.war或将您的爆炸webapp目录命名并重命名为ROOT
${jetty.home}/webapps/ROOT