springboot mvc beetl模板 自定义错误的后缀问题

@Component
public class BeetlErrorViewResolver implements ErrorViewResolver {

	private static final Map<Series, String> SERIES_VIEWS;
	@Value("${beetl.templatesPath:templates}")
	String templatesPath;
	@Value("${beetl.suffix:btl}")
	String suffix;

	private static ArrayList<String> errorFiles = new ArrayList<String>();

	public void getErrorFiles() {
		if (errorFiles.isEmpty()) {
			String path = BeetlErrorViewResolver.class.getClassLoader().getResource("").getFile();
			File templates = new File(path + templatesPath + "/error");
			File[] files = templates.listFiles();
			for (File file : files) {
				if (file.isFile())
					errorFiles.add(file.getName());
			}
		}
	}

	static {
		Map<Series, String> views = new EnumMap<>(Series.class);
		views.put(Series.CLIENT_ERROR, "4xx");
		views.put(Series.SERVER_ERROR, "5xx");
		SERIES_VIEWS = Collections.unmodifiableMap(views);

	}

	@Override
	public ModelAndView resolveErrorView(HttpServletRequest request, HttpStatus status, Map<String, Object> model) {
		ModelAndView modelAndView = resolve(String.valueOf(status), model);
		if (modelAndView == null && SERIES_VIEWS.containsKey(status.series())) {
			modelAndView = resolve(SERIES_VIEWS.get(status.series()), model);
		}
		return modelAndView;
	}

	private ModelAndView resolve(String viewName, Map<String, Object> model) {
		viewName = viewName + "." + suffix;
		getErrorFiles();
		try {
			for (String error : errorFiles) {
				if (error.equals(viewName))
					return new ModelAndView("/error/" + viewName, model);
			}
		} catch (Exception ex) {
		}
		return null;
	}

}

  

转载于:https://www.cnblogs.com/startnow/p/8818931.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值