/ / Spring boot application devuelve el nombre de cadena del JSP en lugar del JSP mismo - spring, jsp, spring-mvc, spring-boot

Aplicación de arranque de primavera que devuelve el nombre de cadena del JSP en lugar del propio JSP - spring, jsp, spring-mvc, spring-boot

Estoy desarrollando una aplicación web usando Spring boot.

El caso de uso es que si un usuario va a la página de inicio,se redirigirá a una nueva URL única cada vez. Por ejemplo: www.Qqd.com -> www.qqd.comjsdh. La próxima vez sería algo diferente, como www.qqd.comdkjfbd

Pero en ambos casos, mostrará el mismo JSP. Lo estoy haciendo como un marco REST para que en el futuro también pueda extenderme para el desarrollo de aplicaciones móviles.

enter image description here

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);
}
}

Respuestas

0 para la respuesta № 1

¿Has intentado devolver el objeto ModelAndView? Tenga en cuenta que eliminé .jsp de home.jsp

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

0 para la respuesta № 2

Ok, yo mismo encontré la solución y lo siguiente funcionó Paso 1: tenga las siguientes líneas en application.properties

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

Paso 2: no veo la creación de la suite de herramientas Spring WEB-INF/jsp carpetas bajo src/webapp. Así que créelo y mueva el jsp debajo de esa carpeta.

Funcionó como por arte de magia. Gracias a todos por ayudarme.