Hallo,
Ich bin bei meinem Spring Projekt mal wieder auf ein Problem gestoßen, ich habe einen Controller, der 3 verschiedene RequestMappings verarbeiten soll, das erste funktioniert einwandfrei, die anderen leider nicht. Im Internet habe ich jetzt schon geschaut, aber leider nichts brauchbares gefunden. Aktuell sieht mein Controller so aus:
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import de.springproj.objects.Scanner;
@Controller
@RequestMapping("/infos/*")
public class ScanViewController {
@RequestMapping("scanner")
public ModelAndView getScanner() {
ModelAndView mav = new ModelAndView("scanner");
List<Scanner> scannerList = new ArrayList<Scanner>();
scannerList.add(new Scanner("Scanner1", "192.168.1.2"));
scannerList.add(new Scanner("Scanner2", "192.168.1.3"));
scannerList.add(new Scanner("Scanner3", "192.168.1.4"));
scannerList.add(new Scanner("Scanner4", "192.168.1.5"));
mav.addObject(scannerList);
return mav;
}
@RequestMapping("mas")
public ModelAndView getMas() {
ModelAndView mav = new ModelAndView("mas");
return mav;
}
@RequestMapping("sas")
public ModelAndView getSas() {
ModelAndView mav = new ModelAndView("sas");
return mav;
}
}```
Edit:
Falls sich einer wundert, warum ich neue Ojekte anlege, nur um sie zurück zu geben, diese Objekte werden später mit Daten gefüllt, sind also erst mal nur so erzeugt worden, die Füllung kommt später :)
Die web.xml:
[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>SpringProj</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>springproj</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springproj</servlet-name>
<url-pattern>/welcome.jsp</url-pattern>
<url-pattern>/welcome.html</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springproj</servlet-name>
<url-pattern>*</url-pattern> <!-- Hier habe ich auch schon /infos/* versucht -->
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<!-- The Bootstrap listener to start up and shut down Spring's root WebApplicationContext.
It is registered to Servlet Container -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
</web-app>[/XML]
Und mein springproj-servlet.xml hat folgenden Inhalt:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="de.springproj.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/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>[/XML]
Wenn ich jetzt im Browser http://localhost:8080/SpringProj/ aufrufe, oder auch http://localhost:8080/SpringProj/infos/scanner.html, funktioniert alles wunderbar, versuche ich aber am Ende mas.html oder sas.html, bekomme ich nur eine Seite mit "Not Found" und im Tracelog
14:28:56,138 WARN [org.springframework.web.servlet.PageNotFound] (default task-31) No mapping found for HTTP request with URI [/SpringProj/infos/mas.html] in DispatcherServlet with name ‘springproj’
Hat da vielleicht einer eine Idee?