这篇文章给大家分享的是有关怎么在后台使用freeMarker和前端使用vue的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。
一:freeMarker的使用
1:java后台使用freeMarker是通过Model,将值传给前端:
如:
@Controller public class MobileNewsFreeMarkerController { @RequestMapping("page/test") public String Test(Model model,HttpServletRequest request){ //获取项目路径 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+""+request.getContextPath()+"/"; //将页面路径通过model传给前台 model.addAttribute("basePath", basePath); //通过HttpServletRequest 获取url中的值,如code值 String code = request.getParameter("code"); //将获取的code参数传给前台 model.addAttribute("code ", code ); //页面跳转 return "page/test"; } }
2:前端页面获取后台传输的值(freeMarker传输的值只能在html页面获取)
注:这里是结合vue
第一步:在js中定义vue的相关参数:
var vm = new Vue({ el: '#rrapp', data: { basePath:"", //项目路径 code : "", // code参数 }, ..........(vue后面内容省略)
第二步:再在页面接收后台传输的值
<head> <script type="text/javascript"> $(document).ready(function() { <#if basePath??> vm.basePath="${basePath}"; </#if> <#if userId??> vm.code ="${code }"; </#if> }); </script> </head>
二:使用中主要遇到的问题
1:Vue存在调用的先后顺序,虽然html页面将后台传输的值付给vue的data中的参数,但是在mounted中是无法使用的时候获取的还是创建的vue的时候data中赋的值,并不会使用html赋的值:
如:
var vm = new Vue({ el: '#rrapp', data: { basePath: "", code :"", }, mounted: function () { var _this = this; console.log(_this.basePath); //输出的还是:"",并不会输出html赋的值,所有在这里无法使用 }
2:但是在vue中methods内的方法是可以直接使用的;初始化如果需要html中传输的参数,可以使用以下方法:
$(function () { vm.getData(vm.basePath,vm.code); }); var vm = new Vue({ el: '#rrapp', data: { basePath: "", code :"", }, methods: { getData: function (baseUrlFlag,codeFlag) { var _this=this; _this.basePath= baseUrlFlag; _this.code =codeFlag; //进行初始化业务操作! }, }
感谢各位的阅读!关于“怎么在后台使用freeMarker和前端使用vue的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。