いくつかの例を続けていても、動作させることはできません。JSP表示モデル値を作成できません。単純なSpring MVCの例
基本的なSpring MVCを使用して、コントローラから返されたいくつかのデータを表示しようとしました。
.
├── pom.xml
└── src
└── main
├── java
│ └── mywebapp
│ ├── config
│ │ ├── MyWebAppInitializer.java
│ │ ├── RootConfig.java
│ │ └── WebConfig.java
│ └── web
│ └── HomeController.java
├── resources
└── webapp
└── WEB-INF
├── views
│ └── home.jsp
└── web.xml
1)MyWebAppInitializer.java
package mywebapp.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { WebConfig.class };
}
}
2)RootConfig.javaである:ここ
(春4.3.9、Tomcatの8.5.20およびクロムを使用して)プロジェクト・ツリーであります空のクラス、豆なし。 バージョンA:
package mywebapp.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
@Configuration
@EnableWebMvc
@ComponentScan("mywebapp.config")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setViewClass(JstlView.class);
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
バージョンB: -
3)WebConfig.java私はこの設定ファイルの2つのバージョン使用 - のみviewResolver()に差はあるが
package mywebapp.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
import org.springframework.web.servlet.view.JstlView;
@Configuration
@EnableWebMvc
@ComponentScan("mywebapp.config")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
4)HomeController.java
package mywebapp.web;
import static org.springframework.web.bind.annotation.RequestMethod.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.ui.ModelMap;
@Controller
public class HomeController {
@RequestMapping(value="/", method=GET)
public String home(ModelMap model) {
model.addAttribute("xyz","this is my message");
return "home";
}
}
5)home.jspを
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
<h2>Hello World!</h2>
<c:out value="${xyz}" />
<br>${xyz}
</body>
</html>
6)のweb.xml - "空" であり、Mavenのアーキタイプによって作成された後に変更されませんでした。 WebConfig.java
出力の両方のバージョンについては
は同じです。
Hello World!
${xyz}
${xyz}
助けてください!
あなたはのModelAndViewを返すと ":インデックスを前進" を使用して試してみましたか? –