我正在使用Spring启动开发一个Web应用程序。
用例是,如果用户进入主页,则每次都会将其重定向到新的唯一URL。例如:www.Qqd.com - > www.qqd.com \ jsdh。 下次它会有所不同,比如www.qqd.com \ dkjfbd
但在这两种情况下,它都会显示相同的JSP。 我将它作为一个REST框架,以便将来我也可以扩展到移动应用程序开发。
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);
}
}
答案 0 :(得分:0)
您是否尝试过返回ModelAndView对象?请注意,我从home.jsp
中删除了.jsp@RequestMapping(value="/{url}")
public ModelAndView addDetails(@PathVariable String url){
log.info("URL: " + url + " , detail: " );
return new ModelAndView("home");
}
答案 1 :(得分:0)
好的,我自己找到了解决方案并且后续工作 第1步:在application.properties
中包含以下行spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
第2步:我没有看到在WEB-INF/jsp
下创建src/webapp
文件夹的Spring工具套件。所以创建它并将jsp移动到该文件夹下。
这就像一个魅力。谢谢大家帮助我。
答案 2 :(得分:0)
这是一个大问题,我几乎花了两个多小时,但终于解决了。
第1步:添加到application.properties:-
- spring.mvc.view.prefix=/WEB-INF/pages/
- spring.mvc.view.suffix=.jsp
第2步:添加到pom.xml中:-
-dependency
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
控制器
@RequestMapping(value="/homepage",method=RequestMethod.GET)
public String hello(Model model)
{
model.addAttribute("message","Hello");
return "myjsppage";
}