Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无需定义控制器的Spring引导JSP应用程序_Jsp_Spring Boot_Migration - Fatal编程技术网

无需定义控制器的Spring引导JSP应用程序

无需定义控制器的Spring引导JSP应用程序,jsp,spring-boot,migration,Jsp,Spring Boot,Migration,我正在将现有的jsp应用程序迁移到spring boot。我已经浏览了一些标准的hello world示例,坦率地说,这些示例的伸缩性不是很好(IMO)。在中,控制器被定义为采用默认路径并将您路由到hello.jsp。向外扩展意味着每个jsp都必须有自己的控制器requestMapping—这是不可取的。所以我继续创建了一个映射所有JSP的方法 @RequestMapping(value = "/") String home() { Logger.info("Routing to the

我正在将现有的jsp应用程序迁移到spring boot。我已经浏览了一些标准的hello world示例,坦率地说,这些示例的伸缩性不是很好(IMO)。在中,控制器被定义为采用默认路径并将您路由到hello.jsp。向外扩展意味着每个jsp都必须有自己的控制器requestMapping—这是不可取的。所以我继续创建了一个映射所有JSP的方法

@RequestMapping(value = "/")
String home() {
    Logger.info("Routing to the home page")
    return "home"
}

@RequestMapping(value = "/{file:.+}")
String jspMapper(@PathVariable String file) {
    Logger.info("Routing to the $file page (generically)")
    return file
}
现在这个“可行”,但这意味着所有现有JSP都需要更改其链接,例如:

<a href="home.jsp">Home</a>

在现代web开发中,每个请求都应该经过一个控制器,因为请求的逻辑应该(几乎)在视图中不存在。所以这实际上可以很好地扩展。您要处理的是一个遗留应用程序,从那时起,最佳实践不断发展。如果您希望将所有逻辑都保存在JSP文件中,那么您的解决方案似乎是可行的。但我鼓励您在迁移时将它们迁移到控制器/服务中。在现代web开发中,我可能不会使用JSP。这些控制器非常简单,构建它们似乎毫无意义,实际上感觉有点像我不想执行的仪式。你为什么需要它。。。你现在已经有了一些有用的东西,只要移植一下就行了。
WEB-INF
下的资源无法直接访问,因此您需要一些东西,显然您目前已经准备好了一些东西,请使用它们。
<a href="home">Home</a>
ext {
    springBootVersion = '1.5.2.RELEASE'
}

apply plugin: 'org.springframework.boot'
apply plugin: 'war'
apply plugin: 'groovy'

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-tomcat')
    compile('javax.servlet:jstl')
    compile('org.apache.tomcat.embed:tomcat-embed-jasper')
    compile('org.eclipse.jdt.core.compiler:ecj:4.6.1')
    compile('org.codehaus.groovy:groovy-all')