/ / Spring boot application zwracający nazwę łańcucha stron JSP, a nie samą stronę JSP - spring, jsp, spring-mvc, spring-boot

Wiosenna aplikacja startowa zwracająca nazwę łańcucha stron JSP, a nie samą stronę JSP - wiosna, jsp, spring-mvc, spring-boot

Zajmuję się tworzeniem aplikacji internetowej przy użyciu rozruchu Spring.

Przypadku użycia jest, jeśli użytkownik idzie do strony głównej, onzostanie przekierowany do nowego unikalnego adresu URL za każdym razem. Np .: www.Qqd.com -> www.qqd.comjsdh. Następnym razem będzie to coś innego, na przykład www.qqd.comdkjfbd

Ale w obu przypadkach wyświetli się ta sama strona JSP. Robię to jako strukturę REST, aby w przyszłości móc również rozbudowywać aplikację mobilną.

wprowadź opis obrazu tutaj

package com.example.qqd;

import org.apache.log4j.Logger;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

@RestController
public class QDetailsService {

Logger log = Logger.getLogger(QDetailsService.class);

@GetMapping("/")
public ModelAndView getNewUrl(ModelMap model){
log.info("URL generated is: ");
return new ModelAndView("redirect:/"+"abcde", model);
}

@RequestMapping(value="/{url}")
public String addDetails(@PathVariable String url){
log.info("URL: " + url + " , detail: " );
//return new ModelAndView("home.jsp");
return "home";
}
}

ServletInitializer.java

public class ServletInitializer extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(QqdApplication.class);
}
}

QqdApplication.java

@SpringBootApplication //This annotation means, it is the starting point of the app.
public class QqdApplication extends SpringBootServletInitializer {

public static void main(String[] args) {
SpringApplication.run(QqdApplication.class, args);
}
}

Odpowiedzi:

0 dla odpowiedzi № 1

Czy próbowałeś zwrócić obiekt ModelAndView? Zauważ, że usunąłem .jsp z home.jsp

@RequestMapping(value="/{url}")
public ModelAndView addDetails(@PathVariable String url){
log.info("URL: " + url + " , detail: " );
return new ModelAndView("home");
}

0 dla odpowiedzi nr 2

Ok, ja sam znalazłem rozwiązanie i podążałem za nim Krok 1: Miej następujące linie w pliku application.properties

spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp

Krok 2: Nie widzę tworzenia pakietu narzędzi Spring WEB-INF/jsp foldery pod src/webapp. Utwórz go i przenieś jsp do tego folderu.

To działało jak czar. Dziękuję wszystkim za pomoc.