+ Antworten
Ergebnis 1 bis 4 von 4

Thema: RequestMapping arbeitet nicht wie erwartet

  1. #1
    User int Themenstarter

    Registriert seit
    09.09.2013
    Ort
    Syke
    Fachbeiträge
    35
    Genannt
    3 Post(s)
    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:
    Java Code:
    1. import java.util.ArrayList;
    2. import java.util.List;
    3.  
    4. import org.springframework.stereotype.Controller;
    5. import org.springframework.web.bind.annotation.RequestMapping;
    6. import org.springframework.web.servlet.ModelAndView;
    7.  
    8. import de.springproj.objects.Scanner;
    9.  
    10. @Controller
    11. @RequestMapping("/infos/*")
    12. public class ScanViewController {
    13.  
    14.     @RequestMapping("scanner")
    15.     public ModelAndView getScanner() {
    16.         ModelAndView mav = new ModelAndView("scanner");
    17.         List<Scanner> scannerList = new ArrayList<Scanner>();
    18.         scannerList.add(new Scanner("Scanner1", "192.168.1.2"));
    19.         scannerList.add(new Scanner("Scanner2", "192.168.1.3"));
    20.         scannerList.add(new Scanner("Scanner3", "192.168.1.4"));
    21.         scannerList.add(new Scanner("Scanner4", "192.168.1.5"));
    22.         mav.addObject(scannerList);
    23.         return mav;
    24.     }
    25.    
    26.     @RequestMapping("mas")
    27.     public ModelAndView getMas() {
    28.         ModelAndView mav = new ModelAndView("mas");
    29.         return mav;
    30.     }
    31.    
    32.     @RequestMapping("sas")
    33.     public ModelAndView getSas() {
    34.         ModelAndView mav = new ModelAndView("sas");
    35.         return mav;
    36.     }
    37.    
    38. }

    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 Code:
    1. <?xml version="1.0" encoding="UTF-8"?>
    2.  
    3. <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">
    4.   <display-name>SpringProj</display-name>
    5.   <welcome-file-list>
    6.     <welcome-file>index.jsp</welcome-file>
    7.   </welcome-file-list>
    8.  
    9.      <servlet>
    10.         <servlet-name>springproj</servlet-name>
    11.         <servlet-class>
    12.             org.springframework.web.servlet.DispatcherServlet
    13.         </servlet-class>
    14.         <load-on-startup>1</load-on-startup>
    15.     </servlet>
    16.     <servlet-mapping>
    17.         <servlet-name>springproj</servlet-name>
    18.         <url-pattern>/welcome.jsp</url-pattern>
    19.         <url-pattern>/welcome.html</url-pattern>
    20.         <url-pattern>*.html</url-pattern>
    21.     </servlet-mapping>
    22.     <servlet-mapping>
    23.         <servlet-name>springproj</servlet-name>
    24.         <url-pattern>*</url-pattern> <!-- Hier habe ich auch schon /infos/* versucht -->
    25.     </servlet-mapping>
    26.  
    27.     <context-param>
    28.         <param-name>contextConfigLocation</param-name>
    29.         <param-value>
    30.             /WEB-INF/applicationContext.xml
    31.         </param-value>
    32.     </context-param>
    33.  
    34.     <!-- The Bootstrap listener to start up and shut down Spring's root WebApplicationContext.
    35.         It is registered to Servlet Container -->
    36.     <listener>
    37.         <listener-class>
    38.             org.springframework.web.context.ContextLoaderListener
    39.         </listener-class>
    40.     </listener>
    41.  
    42.     <listener>
    43.         <listener-class>
    44.             org.springframework.web.context.request.RequestContextListener
    45.         </listener-class>
    46.     </listener>
    47.  
    48. </web-app>

    Und mein springproj-servlet.xml hat folgenden Inhalt:
    XML Code:
    1. <?xml version="1.0" encoding="UTF-8"?>
    2.  
    3. <beans xmlns="http://www.springframework.org/schema/beans"
    4.     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
    5.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    6.     xsi:schemaLocation="
    7.        http://www.springframework.org/schema/beans    
    8.        http://www.springframework.org/schema/beans/spring-beans.xsd
    9.        http://www.springframework.org/schema/mvc
    10.        http://www.springframework.org/schema/mvc/spring-mvc.xsd
    11.        http://www.springframework.org/schema/context
    12.        http://www.springframework.org/schema/context/spring-context.xsd">
    13.  
    14.     <context:component-scan base-package="de.springproj.controller" />
    15.  
    16.     <bean id="viewResolver"
    17.         class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    18.         <property name="viewClass"
    19.             value="org.springframework.web.servlet.view.JstlView" />
    20.         <property name="prefix" value="/WEB-INF/jsp/" />
    21.         <property name="suffix" value=".jsp" />
    22.     </bean>
    23.  
    24. </beans>

    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
    Code:
    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?
    Geändert von Gossi (11.01.2017 um 14:42 Uhr)

  2. #2
    User int Themenstarter

    Registriert seit
    09.09.2013
    Ort
    Syke
    Fachbeiträge
    35
    Genannt
    3 Post(s)
    Hmm, da ich meinen Beitrag scheinbar nicht mehr editieren kann:

    Ich habe das Problem jetzt umgangen, indem ich einfach für jede Seite einen neuen Controller mache. Ist zwar leider nicht das was ich wollte, aber so funktioniert es

  3. #3
    mvitz-guest
    Gast/Guest
    Eigentlich sollte es für den * im RequestMapping des Controllers keinen Grund geben. Versuch doch einfach mal "/infos". Spring ist dann von selber dazu in der Lage drei Routen "/infos/scanner", "/infos/mas" und "/infos/sas" zu erzeugen.

    Weiterhin ist der Weg über die XML Konfiguration ein wenig verstaubt.

  4. #4
    User int Themenstarter

    Registriert seit
    09.09.2013
    Ort
    Syke
    Fachbeiträge
    35
    Genannt
    3 Post(s)
    Habe mittlerweile einen zweiten Controller (für einen Abschnitt im Programm), der Funktioniert einwandfrei, aber der Controller aus dem Abschnitt oben, wenn ich den erweiter will er nicht....

    Aber naja, funktioniert jetzt ja trotzdem soweit, danke

+ Antworten Thema als "offen" markieren

Direkt antworten Direkt antworten

Das Gegenteil von hell ist... ?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. (Algorithmen) SlowSort arbeitet nicht
    Von FranzFerdinand im Forum Allgemeine Themen
    Antworten: 6
    Letzter Beitrag: 04.04.2016, 14:06
  2. toString einer Klasse liefert nicht das was erwartet wird.
    Von ZickZack im Forum Java-Grundlagen
    Antworten: 18
    Letzter Beitrag: 11.03.2015, 17:48
  3. GridBagLayout skaliert nicht wie erwartet
    Von HighlandGamer64 im Forum AWT, Swing, JavaFX & SWT
    Antworten: 3
    Letzter Beitrag: 11.01.2014, 23:05
  4. KeyListener arbeitet nicht mehr
    Von DVDB im Forum Spiele- und Multimedia-Programmierung
    Antworten: 15
    Letzter Beitrag: 13.11.2013, 23:08
  5. "Open-Source-Rechnungsprogramm arbeitet kostenlos"
    Von L-ectron-X im Forum Software
    Antworten: 0
    Letzter Beitrag: 09.01.2009, 15:20

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •