Hur får jag igång Hello World med Spring Framework MVC?

Permalänk

Hur får jag igång Hello World med Spring Framework MVC?

Hej!

Jag ska göra ett enkelt "Hello World" med ramverket Spring Framework MVC.
Jag har följt dessa manualer:
https://www.tutorialspoint.com/spring/spring_web_mvc_framewor...
https://www.tutorialspoint.com/spring/spring_mvc_hello_world_...

Men jag får bara 404 när jag ansluter http://localhost:8080/FirstMVC/hello

Projektet heter FirstMVC.

Jag börjar först steg för steg vad jag har gjort.

Steg 1: Jag har installerat Eclipse och Spring IDE verktyg som inkluderar Maven.

Steg 2: Jag har skapat en dynamisk webbprojekt.

Steg 3: Jag har skapat web.xml, HelloWeb-servlet.xml, hello.jsp och HelloController.java

Steg 4: Jag har installerat TomCat och http://localhost:8080 fungerar för TomCat

Så jag har i praktiken helt kopierat koden från dessa manualer, men det fungerar inte när jag högerklicka på projektet -> Run As -> Run on server -> TomCat v9.0 -> Finish

Det fungerar inte heller att skapa en hemsida om jag exporterar projektet till en FirstMVC.WAR fil och placerar den i TomCat's Webapps mappen.

Så vad ska jag göra för att TomCat ska hosta upp min hemsida?
Jag får liksom inga error eller varningar.

web.xml

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <servlet> <servlet-name>HelloWeb</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWeb</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>

HelloWeb-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-... <context:component-scan base-package = "com.tutorialspoint" /> <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name = "prefix" value = "/WEB-INF/jsp/" /> <property name = "suffix" value = ".jsp" /> </bean> </beans>

hello.jsp

<%@ page contentType = "text/html; charset = UTF-8" %> <html> <head> <title>Hello World</title> </head> <body> <h2>${message}</h2> </body> </html>

HelloController.java

package com.tutorialspoint; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.ui.ModelMap; @Controller @RequestMapping("/hello") public class HelloController { @RequestMapping(method = RequestMethod.GET)public String printHello(ModelMap model) { model.addAttribute("message", "Hello Spring MVC Framework!"); return "hello"; } }

För mavenprojektet.
pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>FirstMVC</groupId> <artifactId>FirstMVC</artifactId> <version>0.0.1-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <release>10</release> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.9.RELEASE</version> </dependency> </dependencies> </project>

Permalänk
Medlem

Din mapping är ju /hello. Borde inte hela URL:en vara http://localhost:8080/hello? Springs dokumentation är utmärkt annars. Lär vara mer uppdaterat också https://spring.io/guides/gs/serving-web-content/

Permalänk
Skrivet av l4nky:

Din mapping är ju /hello. Borde inte hela URL:en vara http://localhost:8080/hello? Springs dokumentation är utmärkt annars. Lär vara mer uppdaterat också https://spring.io/guides/gs/serving-web-content/

Jag har löst problemet. Mitt problem var att jag hade inte uppdaterat projektet med det mavenbibliotek jag nyss hade lagt till.

Det är kul med Spring MVC. Man skriver lite kod för att få mycket gjort, men konsten att veta vad man ska skriva är svårt. Jag förstår sällan vad jag gör när jag programmerar med Spring MVC.

Skickades från m.sweclockers.com

Permalänk
Hedersmedlem

Det är kul att göra något man inte vet vad det är? Hmm

Permalänk
Medlem
Skrivet av heretic16:

Jag har löst problemet. Mitt problem var att jag hade inte uppdaterat projektet med det mavenbibliotek jag nyss hade lagt till.

Det är kul med Spring MVC. Man skriver lite kod för att få mycket gjort, men konsten att veta vad man ska skriva är svårt. Jag förstår sällan vad jag gör när jag programmerar med Spring MVC.

Skickades från m.sweclockers.com

Det är därför det är bra att kanske använda lite mindre lättviktiga ramverk om man inte behöver något annat.

Permalänk
Skrivet av l4nky:

Det är därför det är bra att kanske använda lite mindre lättviktiga ramverk om man inte behöver något annat.

Jag har insett att Spring MVC är för tungt för mina behov. Men jag har iallafall lärt mig hantera Maven och Spring Beans, vilket har varit mycket användbart.