2

アノテーション駆動型構成を使用してSpring3.2でJSPをレンダリングしようとしていますが、JSPは文字列としてレンダリングされ、評価されません。

開発中のWebアプリを実行するためにMavenJettyプラグインを使用しています。したがって、すべてが「正常に機能する」ように見えます。

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アーキタイプresthub-mongodb-backbonejs-archetypeを使用して、このプロジェクトをブートストラップしました。このプロジェクトは、古いweb.xmlではなくWebAppInitializerを使用し、xmlBeanではなく新しいアノテーション駆動型Beanを使用します。


編集2

私は長い間これに頭を悩ませてきたので、プロジェクトをgithubhttps://github.com/austinbv/calendar/に置きまし。何が重要で何が重要でないのかわからないので。

助けてくれてありがとう


4

6 に答える 6

1

スプリングブーツを使用するときにも同じ問題がありました。これらの依存関係をプロジェクト pom.xml に追加すると、問題が解決しました。

<dependency>
    <groupId>tomcat</groupId>
    <artifactId>jasper-compiler</artifactId>
    <version>5.5.23</version>
</dependency>
<dependency>
    <groupId>tomcat</groupId>
    <artifactId>jasper-runtime</artifactId>
    <version>5.5.23</version>
</dependency>
<dependency>
    <groupId>tomcat</groupId>
    <artifactId>jasper-compiler-jdt</artifactId>
    <version>5.5.23</version>
</dependency>
于 2016-03-26T03:53:06.010 に答える
1

@austinbv SPRING LINKを使用してセットアップを確認してください。(@ Rohitが上で指摘したように-欠落している部分)

于 2013-02-17T00:56:47.737 に答える
0

私の答えが実際にどれくらいになるかはわかりませんが、まったく同じ問題がありました(Spring + boot + maven + tomcat)。tomcat.embed 依存からスコープ提供を削除することで解決しました。したがって、私の依存関係は次のようになります。

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
于 2015-03-05T06:58:06.923 に答える
0

適切なビュー クラスを指定する必要があります

 public InternalResourceViewResolver internalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setViewClass(org.springframework.web.servlet.view.JstlView.class);
resolver.setPrefix("/views/");
resolver.setSuffix(".jsp");
return resolver;

}

于 2013-02-16T23:52:04.387 に答える