最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

后台使用freeMarker和前端使用vue的方法及遇到的问题

来源:动视网 责编:小采 时间:2020-11-27 21:55:19
文档

后台使用freeMarker和前端使用vue的方法及遇到的问题

后台使用freeMarker和前端使用vue的方法及遇到的问题:一:freeMarker的使用 1:java后台使用freeMarker是通过Model,将值传给前端: 如: @Controller public class MobileNewsFreeMarkerController { @RequestMapping(page/test) public String Test(Model
推荐度:
导读后台使用freeMarker和前端使用vue的方法及遇到的问题:一:freeMarker的使用 1:java后台使用freeMarker是通过Model,将值传给前端: 如: @Controller public class MobileNewsFreeMarkerController { @RequestMapping(page/test) public String Test(Model


一: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的方法及遇到的问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

文档

后台使用freeMarker和前端使用vue的方法及遇到的问题

后台使用freeMarker和前端使用vue的方法及遇到的问题:一:freeMarker的使用 1:java后台使用freeMarker是通过Model,将值传给前端: 如: @Controller public class MobileNewsFreeMarkerController { @RequestMapping(page/test) public String Test(Model
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top