Я пробовал использовать Tomcat 7 и Tomcat 8 RC 5, но мой JSP-компонент не является рендерингом.Servlet Spec 3.0 без рендеринга JSP включает
Я использую Spring MVC (не думаю, что это имеет значение, хотя).
My JSP выглядит следующим образом:
<jsp:include page="includes/header.jsp" />
It Worked!
<jsp:include page="includes/footer.jsp" />
Когда страница визуализируется это выглядит следующим образом
<jsp:include page="includes/header.jsp" />
It Worked!
<jsp:include page="includes/footer.jsp" />
В моем файле Pom Я в том числе:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
Мой веб .xml выглядит следующим образом:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="Blog" version="3.0">
<display-name>Blog</display-name>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/jsp/error/404.html</location>
</error-page>
My App Initializer выглядит следующим образом:
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.setConfigLocation("com.package.to.AppConfig");
servletContext.addListener(new ContextLoaderListener(context));
ServletRegistration.Dynamic servlet = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context));
servlet.setLoadOnStartup(1);
servlet.addMapping("/*");
}
Что я делаю неправильно? Почему мой объект не отображается правильно?
Я также попытался следующие с тем же результатом:
<%@ include file="includes/header.jsp" %>
It Worked!
<%@ include file="includes/footer.jsp" %>
контроллер Метод:
@Controller
public class PageController {
@Autowired
PageService pageService;
@RequestMapping(value = "/*", method = RequestMethod.GET)
public String index(HttpServletRequest request){
String path = request.getRequestURI().substring(request.getContextPath().length());
Page page = pageService.getPageByUrl(path);
if(page == null){
throw new ResourceNotFoundException();
}
return page.getTemplate().getPageTemplatePath();
}
}
AppConfig
@Configuration
@ComponentScan({"package.to.scan"})
@EnableTransactionManagement
@EnableWebMvc
@PropertySource("/${env:prod}.properties")
@Import({DataSourceConfig.class})
public class AppConfig extends WebMvcConfigurerAdapter {
@Autowired
Environment environment;
@Bean
public InternalResourceViewResolver internalResourceViewResolver(){
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
internalResourceViewResolver.setPrefix("/WEB-INF/jsp/");
internalResourceViewResolver.setSuffix(".jsp");
return internalResourceViewResolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/styles/**").addResourceLocations("/styles/");
registry.addResourceHandler("/images/**").addResourceLocations("/images/");
registry.addResourceHandler("/scripts/**").addResourceLocations("/scripts/");
}
}
Можете ли вы показать метод контроллера, который пересылает ваш jsp? И я хотел бы видеть вашу соответствующую конфигурацию контекста. –
Добавлен метод контроллера. – unknown
И ваш контекст имеет «InternalResourceViewResolver» или что-то еще? –