spring-boot - 瓷砖在春季启动时无法解析模型和视图
问题描述
我在将我的 spring mvc 项目移动到 spring boot 时遇到了一个问题。我在我的 spring 项目中使用 apache tile 和 jsp 视图。我有一个控制器入口控制器,用于发送模型数据和视图。但是我的 viewresolver 没有找到合适的 jsp (entry.jsp)。我的 jspWEB-INF/jsp/abc/ayx/entry.jsp
代码在 STS 嵌入式 tomcat 服务器上运行良好,但是当我将战争部署到 weblogic 14.1.1.0.0 时出现问题
下面是我的tileconfiguration.java
@Configuration
@ComponentScan(basePackages="org.abc.com.state")
@PropertySource("classpath:views.properties")
public class Tiles_Configuration implements WebMvcConfigurer {
@Bean(name = "viewResolver")
public UrlBasedViewResolver tilesViewResolver() {
UrlBasedViewResolver tilesViewResolver = new UrlBasedViewResolver();
tilesViewResolver.setViewClass(TilesView.class);
return tilesViewResolver;
}
@Bean(name = "tilesConfigurer")
public TilesConfigurer tilesConfigurer() {
TilesConfigurer tilesConfigurer = new TilesConfigurer();
String[] defs = { "/WEB-INF/Tiles/tiles-defs.xml" };
tilesConfigurer.setDefinitions(defs);
return tilesConfigurer;
}
@Bean
public ResourceBundleViewResolver viewResolver() {
ResourceBundleViewResolver resolver = new ResourceBundleViewResolver();
resolver.setBasename("views");
resolver.setOrder(1);
return resolver;
}
我的tiles-defs.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="baseLayout" template="/WEB-INF/layout/baseLayout.jsp">
<put-attribute name="header" value="/WEB-INF/layout/header.jsp"/>
<put-attribute name="body" value=""/>
<put-attribute name="footer" value="/WEB-INF/layout/footer.jsp"/>
</definition>
<definition name="icmsbaseLayout" template="/WEB-INF/layout/baseLayout.jsp">
<put-attribute name="header" value="/WEB-INF/layout/student.jsp"/>
<put-attribute name="body" value=""/>
<put-attribute name="footer" value="/WEB-INF/layout/footer.jsp"/>
</definition>
<definition name="popupLayout" template="/WEB-INF/layout/popupLayout.jsp">
<put-attribute name="header" value="/WEB-INF/layout/popupheader.jsp"/>
<put-attribute name="body" value=""/>
<put-attribute name="footer" value=""/>
</definition>
<definition name="login" template="/login/login.jsp">
</definition>
<definition name="loginfailure" template="/login/loginfailure.jsp">
</definition>
<definition name="loginlocked" template="/login/loginlocked.jsp">
</definition>
<definition name="loginmaxsessions" template="/login/loginmaxsessions.jsp">
</definition>
<definition name="loginsessiontimeout" template="/login/loginsessiontimeout.jsp">
</definition>
<definition name="logout" template="/login/logout.jsp"/>
<definition name="forgotpassword" template="/login/forgotpasswordotp.jsp" />
<definition name="resetpassword" template="/login/resetpassword.jsp"/>
<definition name="entry" extends="baseLayout">
<put-attribute name="title" value="myproject"/>
<put-attribute name="body" value="/WEB-INF/jsp/abc/xyz/entry.jsp"/>-----this jsp giving null pointer exception
</definition>
我的views.properties
entry.(class)=org.springframework.web.servlet.view.tiles3.TilesView
entry.url=entry
应用程序属性
spring.mvc.view.prefix:/WEB-INF/jsp/
spring.mvc.view.suffix:.jsp
项目结构
myproject---
|--src/main/resources
|--src/main/java
|--src/main/webapp
|--WEB-INF
|--jsp
|--abc
|--xyz
|--entry.jsp
|--Tiles
|--tile-defs.xml
我的控制器方法
@GetMapping(value = "/entry.htm")
protected ModelAndView entrycontroller(@ModelAttribute("entry") EntryFormBean entry, ModelMap model, HttpServletRequest request,HttpSession session)
{//model has some data
ModelAndView modelAndView = new ModelAndView("entry", model);
return modelAndView;------this is returning null pointer exception
}
解决方案
推荐阅读
- html - Bootstrap 4 - 自动换行文本而不改变高度
- debugging - 为什么逻辑回归中更高的学习率会产生 NaN 成本?
- python - 与 Timedelta 的时间差给出了错误的结果
- xml - 这里有更高效的 XQuery 来删除吗?
- tree - 使用树布局可视化 Racket 中的任意树
- php - PHP:检查文件是否存在,但@get_headers 影响跟踪器
- c++ - antlr4 c++ 目标的未定义引用问题
- cmd - 在命令提示符窗口中突出显示文本会停止脚本执行还是只是阻止输出?
- javascript - 是否可以在Javascript中动态构建变量
- angular - Angular 7 - 渲染组件数组