2016-07-08 70 views
0

我嘗試了各種建議,但是無法讓我的Spring MVC Hello World應用程序正常工作。有人能幫我解決這個問題嗎?無法獲得Spring MVC Hello World的工作

以下是我的文件的內容:

的web.xml

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
    <servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring.xml</param-value> 
     </init-param> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

pom.xml中(只依賴部分)

<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>4.3.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>4.3.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>4.3.1.RELEASE</version> 
    </dependency> 
</dependencies> 

spring.xml

<context:component-scan base-package="com.aditya.controllers" /> 
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

我的控制器類

@Controller 
public class FirstController 
{ 
    @RequestMapping("/helloWorld") 
    public String greetUser(final ModelMap model) 
    { 
     model.addAttribute("message", "Hello World!!!"); 
     return "helloWorld"; 
    } 
} 

的helloWorld.jsp(放置在SRC /主/ web應用/ WEB-INF/JSP)

<html> 
<body> 
    <h1>${message}</h1> 
</body> 
</html> 
+0

更新:我現在有流量到我的控制器。但是,我無法將用戶轉到視圖。我在控制檯中得到以下內容2016年7月8日下午1:57:03 org.springframework.web.servlet.PageNotFound noHandlerFound 警告:未找到具有URI的HTTP請求的映射[/ application-two/WEB-INF/jsp/DispatcherServlet中名爲'spring'的helloWorld.jsp] –

+0

仍在尋找答案。幫助表示讚賞。謝謝! –

回答

0

得到它通過修改web.xml中工作:

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
    <servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring.xml</param-value> 
     </init-param> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

通知在servlet映射的URL模式的變化。

0

我看到至少2缺少配置。

web.xml,您錯過了ContextLoaderListener

org.springframework.web.context.ContextLoaderListener ...

在你spring.xml,你錯過了控制器組件掃描配置。假設您的FirstController在包com.example.web.controller中。

<context:component-scan base-package="com.example.web.controller"></context:component-scan> 

有關配置詳細信息,請參閱Spring文檔。 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-servlet

+0

編輯我的問題。我能夠通過使用與spring-web和spring-webmvc相同版本的spring-core來解決大部分錯誤。另外,需要添加''。不確定關於ContextLoaderListener。我認爲contextConfigLocation應該做必要的事情。 –

+0

@AdityaGupta你說得對,這是我的誤解和錯誤。 'ContextLoaderListener'絕對不是必須的,你可以擺脫它。我會編輯我的答案。 – lute