我正在尝试使用Intellij IDEA运行我的Spring Boot项目.这个项目是Spring MVC类型,意味着它在路径中有JSP文件main/webapp/WEB-INF/jsp.
我application.properties有这些设置:
spring.view.prefix=/WEB-INF/jsp/
spring.view.suffix=.jsp
Run Code Online (Sandbox Code Playgroud)
当我在Intellij中运行项目作为"Spring Boot Run Configuration"时,服务器无法识别JSP文件的路径.这是我得到的消息:
如果我使用命令"Maven Run Configuration"运行项目,spring-boot:run一切正常.
我不知道为什么会这样.每个运行配置的项目代码和设置都相同.
您可以尝试这个项目(而不是我的项目)来理解我的意思https://github.com/mariuszs/spring-boot-web-jsp-example.
我的项目也是如此.我应该注意,当项目使用Spring Boot Run Configuration运行时,我确实在控制台中看到控制器已正确映射.
2017-06-28 08:29:13.906 INFO 10308 --- [ main] o.s.w.s.h.SimpleUrlHandlerMapping : Mapped URL path [/login] onto handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController]
2017-06-28 08:29:13.835 INFO 10308 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/login],methods=[GET]}" onto public java.lang.String com.intuit.mintbills.controllers.generic.LoginController.getLoginPage()
Run Code Online (Sandbox Code Playgroud) 我试图搜索Spring文档+互联网上的文章+ Stackoverflow的问题,但没有找到任何有关它的信息。对我而言,Log4J2的配置(尤其是模式)更加简单,个人化。
另外,根据这些文章,我发现Log4J2比Logback具有更好的性能:
https://stackify.com/compare-java-logging-frameworks
https://blog.overops.com/the-logging-olympics-a-race-between-todays-top-5-logging-frameworks
https://www.sitepoint.com/which-java-logging-framework-has-the-best-performance/
如果我们要考虑异步记录仪,性能更高方便赞成Log4J2根据阿帕奇- https://logging.apache.org/log4j/2.x/performance.html是的,我知道,这是他们的工作使它们的框架看起来更好,但我确实相信它们是可靠的。
我的假设是Pivotal选择Logback作为默认值,因为Log4J2是在他们发布Spring-Boot 1.0版本之后的某个时候发布的。
谁能对此有所启发?我的假设正确吗?
我有一个Spring Boot项目,正在尝试在JSP文件中进行以下调用:
<%@ taglib prefix="tagz" tagdir="/WEB-INF/tags" %>
<tagz:utils tabs="true"/>
Run Code Online (Sandbox Code Playgroud)
标签文件夹位于-
\ src \ main \ resources \ WEB-INF \ tags
JSP文件文件夹位于-
\ src \ main \ resources \ META-INF \ resources \ WEB-INF \ jsp
我还定义了application.properties文件以包括:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
Run Code Online (Sandbox Code Playgroud)
如果我尝试将标签文件夹放在除Intellij之外的任何其他类路径中,则会显示错误,该错误无法在编辑器中识别该调用。
如果删除taglib调用,将正确显示JSP页面。
我的pom.xml当然具有以下依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.4.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>8.5.15</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
白标错误页面
此应用程序没有针对/ error的显式映射,因此您将其视为后备。
Sun Jun 25 16:12:47 IDT 2017发生意外错误(类型=内部服务器错误,状态= 500)。/WEB-INF/jsp/main.jsp(行:[11],列:[4])在导入了前缀[tagz]的标签库中未定义标签[utils]
我认为这与Spring Boot中静态文件的配置有关,但是我尝试添加spring.resources.static- …
java ×3
spring-boot ×3
jsp ×2
jsp-tags ×1
log4j2 ×1
logback ×1
logging ×1
maven ×1
spring-mvc ×1