【发布时间】:2013-02-16 22:19:20
【问题描述】:
我正在尝试使用注释驱动配置在 Spring 3.2 中呈现 JSP,但 JSP 呈现为字符串并且未评估。
我正在使用 maven jetty 插件在开发中运行 webapp。所以似乎一切都应该“正常工作”。
我使用 JSP 所包含的依赖项是
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
配置JSP的bean是
@Configuration
public class WebAppConfiguration {
@Bean
public InternalResourceViewResolver internalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
控制器非常简单
@Controller
public class RootController {
@RequestMapping(value = "/login")
public String login() {
return "login";
}
JSP 也很简单
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head></head>
<body>
<%= "Hello World" %>
${ "Hello World" }
<form name="auth" action="<c:url value='j_spring_security_check' />" method="POST">
<label>Username: <input type="text" name="j_username"></label>
<label>Password: <input type="password" name="j_password"></label>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
从图中可以看出,JSP 没有被评估。我需要做些什么来告诉 JSP 在呈现时进行评估。
编辑 1
因此,我使用Resthub archetype resthub-mongodb-backbonejs-archetype 来引导这个项目,它使用 WebAppInitializer 而不是旧的 web.xml,并且它使用新的注释驱动 bean 而不是 xml bean,因此只是为了提供一些额外的信息。
编辑 2
我一直在努力解决这个问题,所以我把这个项目放在了 github https://github.com/austinbv/calendar/。因为我不知道什么重要什么不重要。
感谢您的帮助
【问题讨论】:
-
您是否将 jstl.jar 和 standard.jar 复制到 WEB-INF/lib 中?
-
在我的 WEB-INF 中,我确实有 jstl 库。通过将 JSTL 添加到我的 pom 并在构建时添加它来包含它
-
您是否尝试在您的 WebAppConfiguration 类中使用
@EnableWebMvc? -
你能发布你的 web.xml 吗?
-
View 文件夹中有 login.jsp 吗?
标签: java jsp spring-mvc