使用SpringMVC +嵌入式Jetty + Gradle设置JSP

托梅克

我已经尝试了一段时间,但我真的无法用嵌入式码头运行SpringMVC(基于注释的MVC配置)项目,同时使用gradle管理依赖项。

我设法显示了jsp页面,但是没有解析jsp标签?被执行?我的设置如下:build.gradle:

apply plugin: 'java'
apply plugin: 'eclipse'

repositories {
    mavenCentral()
}
sourceSets.main.resources.srcDirs = ['src/main/resources', 'webapp']
sourceSets.main.java.srcDirs = ['src/main/java']

dependencies {
    compile 'javax.servlet.jsp:jsp-api:2.2'
    compile 'javax.servlet:javax.servlet-api:3.1.0'
    compile 'javax.servlet.jsp.jstl:jstl-api:1.2'
    compile 'org.springframework:spring-webmvc:4.1.6.RELEASE'
    compile 'org.apache.logging.log4j:log4j-core:2.2'
    compile 'org.eclipse.jetty:jetty-webapp:9.2.10.v20150310'
}

我的视图解析器的配置如下:

@Bean
public InternalResourceViewResolver jspViewResolver() {
    InternalResourceViewResolver bean = new InternalResourceViewResolver();
    bean.setPrefix("/pages/");
    bean.setSuffix(".jsp");
    return bean;
}

我正在尝试显示此jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<c:set var="test" scope="session" value="test"/>
<c:out value="${test}"/>
</body>
</html>

@Edit:AppInitializer,用于设置Jetty和SpringMVC:

public class AppInitializer {
    private static final int DEFAULT_PORT = 8080;
    private static final String CONTEXT_PATH = "/";
    private static final String CONFIG_LOCATION = "pl.com.imralav.springmvc.config";
    private static final String MAPPING_URL = "/*";
    private static final String DEFAULT_PROFILE = "dev";

    public static void main(String[] args) throws Exception {
        new AppInitializer().startJetty(getPortFromArgs(args));
    }

    private static int getPortFromArgs(String[] args) {
        if (args.length > 0) {
            try {
                return Integer.valueOf(args[0]);
            } catch (NumberFormatException ignore) {
            }
        }
        return DEFAULT_PORT;
    }

    private void startJetty(int port) throws Exception {
        Server server = new Server(port);
        server.setHandler(getServletContextHandler(getContext()));
        server.start();
        server.join();
    }

    private static ServletContextHandler     getServletContextHandler(WebApplicationContext context) throws     IOException {
        ServletContextHandler contextHandler = new ServletContextHandler();
        contextHandler.setErrorHandler(null);
        contextHandler.setContextPath(CONTEXT_PATH);
        contextHandler.addServlet(new ServletHolder(new     DispatcherServlet(context)), MAPPING_URL);
        contextHandler.addEventListener(new     ContextLoaderListener(context));
        contextHandler.setResourceBase(new ClassPathResource("WEB-INF").getURI().toString());
        return contextHandler;
    }

    private static WebApplicationContext getContext() {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.setConfigLocation(CONFIG_LOCATION);
        context.getEnvironment().setDefaultProfiles(DEFAULT_PROFILE);
        return context;
    }
}

不知道我可能会错过什么?当部署SpringMVC作为对tomcat的战争时,servlet-api依赖不是“编译”(类似于targetCompile或类似的东西),但是它现在是嵌入式码头,因此我相信这次编译就可以了。

托梅克

如此愚蠢的问题。Jetty只是不支持jsp。Jetty不支持JSP的OOTB。当我插入Thymeleaf时,所有功能都可以正常运行。@geoand和@Joakim的荣誉

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用嵌入式Jetty设置静态资源和自定义服务?

运行时Jetty 9(嵌入式)JSP编译

使用嵌入式Jetty测试Spring-Rest服务

使用嵌入式Jetty提供静态文件

使用嵌入式Jetty和Tapestry进行日志记录

使用嵌入式 Jetty 计算每秒请求数

使用嵌入式设备设置ntp客户端

使用嵌入式API Google Analytics设置API密钥

如何使用Javascript定性设置嵌入式数据

嵌入式Linux:不使用NTP设置时间

如何使用嵌入式Cassandra和Rexster设置Titan

如何在Spring Boot中为嵌入式Jetty设置处理程序?

在嵌入式Jetty中设置默认字符编码和内容类型

嵌入式Jetty是否可以设置过滤器的初始化参数?

如何使用Spring Boot应用程序在嵌入式Jetty中配置异步超时

在Docker上使用嵌入式Jetty服务器运行Java应用程序

如何将hawt.io与Spring Boot和嵌入式Jetty结合使用

使用Spring Boot为X-FORWARDED-PROTO配置嵌入式Jetty 9

在 Ktor 中使用 Jetty 嵌入式服务器获取客户端证书

使用嵌入式Jetty和jersey建立Web应用程序,并进行请求分派

嵌入式Jetty服务器-没有对/的JSP支持,找不到org.apache.jasper.servlet.JspServlet

如何使用gradle在Spring Boot的嵌入式tomcat中运行外部war文件?

在React JS中使用嵌入式CSS设置背景图像URL

bash脚本-如何设置与嵌入式if语句一起使用的函数

如何使用嵌入式tomcat会话集群设置Spring Boot应用程序?

Swift:使用prepareForSegue将UIView容器的高度设置为嵌入式UITableView的高度

如何使用嵌入式码头设置上下文路径?

无法在使用Ubuntu 16.04的嵌入式设备上设置静态IP

使用`System.exit()`停止具有嵌入式Jetty服务器的Java应用程序是否安全?