以前使用JFinal的时候,习惯搭配JSTL来使用,所有路径我习惯使用绝对路径,因为这样定好过后,我以后维护不会再修改。
在JSTL中的每个路径我都会使用
<c:set var="contxt" scope="page" value="${pageContext.request.contextPath}" />
<script src="${contxt}/assets/js/datetime/bootstrap-datepicker.js"></script>
定义Context路径头,来确定每个引用路径都是绝对路径。
在使用Enjoy模板的时候出现绝对路径与相对路径的问题,使用相对路径后,每次提交表单后刷新单签页面,所有CSS/JS/image找不到资源的情况,我想问Enjoy模板引擎是否内置一些函数或者方法获取项目的绝对路径的Context的名称,用来确定绝对路径。还是说需要自己写代码获取Context名称?
求帮助
============已经找到答案了========
@Override public void configEngine(Engine me) { me.setDevMode(true); me.addSharedFunction("/tempt/layout.html"); ///添加一下代码,获取项目的ContextPath名称,在html页面中就可以通过#context定义绝对路径了。 me.addSharedObject("context", JFinal.me().getContextPath()); }
<link rel="stylesheet" href="#(context)/assets/bootstraptable/bootstrap-table.css"> <link rel="stylesheet" href="#(context)/assets/bootstraptable/bootstrap-table-fixed-columns.css">
me.addSharedObject("context", JFinal.me().getContextPath());
在网页中就可以使用像: