vue -前端传递对象到springboot后端,跳转页面并传递参数

25 篇文章 0 订阅
16 篇文章 0 订阅

由于对前端不是特别熟, vue也就学了一周,javascript也就是简单学了一两天,做个人博客的时候遇到一些不常用的方法,记一下笔记。

1. 构建对象,利用axios传递到后,跳转页面并传参

首先构建axios函数将对象传递到后端,由于是分页数据,需要在data对象里包含多个参数:

 //条件分页查询
 export const findPage = (params) => {
  return axios({
    method: 'post',
    url: `/findPage`,
    data: {
      sortView: "commentNum",  //暂时写死,按浏览量排序
      direction: "desc",       //暂时写死,倒序
      pageSize: params.pageSize,     //单页行数
      pageNum: params.currentPage,   //第几页
      title: params.title,           //查询的文章名称,后台会用模糊查询该名称
      categoryId:params.categoryId   //文章类别id,  后台会用精确查询该类别id  
      
   },

  })
}

在side.vue中使用该函数

<script>
//引入该函数
import {findPage} from '@/api/article'
export default {
   data(){
    return{
      routerList:[],
      tags: [],
      currentPage:1,   //当前显示页数
      pageSize:5, //单页条数
        
    }
  }, 
  methods:{
  	//点击某tag触发该函数,并传递categoryId
	 clickTag(categoryId){
        console.log(categoryId);
        //创建对象
        function Params(pageSize, currentPage,title,categoryId){
            this.pageSize = pageSize;
            this.currentPage = currentPage;
            this.title = title;
            this.categoryId = categoryId;
         }
         //显示第1页5条数据,不查询title,故令title=null
         var params = new Params(5,1,null,categoryId);

         findPage(params).then(res=>{
            //保存传递回来的结果数据
            this.routerList = res.content;
         })
         //通过路由跳转到“/articleList” ,同时传递categoryId
         this.$router.push({path: '/articleList', query: {categoryId: categoryId},})
     },
  },
  
}
</script>

在javascript中构建对象的方法有三种,我用的是构造函数的方法,其他方法都可以试一下,这里跳转页面并传递参数用的是 r o u t e r , router, routerrouter的用法详见我的博客。

路径“/articleList”对应的页面是ArticleList.vue,在该页面接收参数categoryId,这里设置一个监听

  watch:{
    //监听路由变化
    $route(to,from){
      if(to.query.categoryId!=null){
      	//将传递过来的categoryId保存起来
        this.categoryId=to.query.categoryId;
      }
      
    }

2. 后端springboot接收传递的对象

由于axios传递的对象都是json格式,所以需要注释@RequestBody

    @PostMapping("api/findPage")
    public Object findPage(@RequestBody JSONObject param) {
        //取出content,由于是json字符串,所以取出来都是String类型
        String sortView = param.getString("sortView");
        String direction = param.getString("direction");
        String pageSize = param.getString("pageSize");
        String pageNum = param.getString("pageNum");
        String title = param.getString("title");
        String categoryId = param.getString("categoryId");

		//这里用到了查询类ArticleQuery封装参数
        ArticleQuery aq=new ArticleQuery();
        aq.setSortView(sortView);
        aq.setDirection(direction);
        aq.setPageSize(Integer.valueOf(pageSize));
        aq.setPageNum(Integer.valueOf(pageNum));

        //判断title是否为null
        if (!StringUtils.isEmpty(title)) {
            aq.setTitle(title);
        }

        //判断categoryId是否为null
        if (!StringUtils.isEmpty(categoryId)) {
            aq.setCategoryId(Long.valueOf(categoryId));
        }

        //查询条件
        aq.setTitle(title);
        return articleService.findPage(aq);
    }

这里url为"api/findPage"是因为要解决跨域问题,跨域问题的解决见我的博客。

3.数组的简单用法

javascript中数组的用法,做一个简单笔记,我需要给传回来的行数据都加一列type,这个type只有5种类型,所以我采用轮循的方式添加,具体操作如下:

  queryAllCategory().then(res=>{
         console.log("========全部类别=========")
         //一共有5种类型
         var type=['','success','info','danger','warning'];
         var length=res.length;
         // 这里设置一个空数组,接收json
         var array = new Array();
         for( var i=0;i<5;i++){
            let name=res[i].name;
            let categoryId=res[i].categoryId;
            //采用轮循的方式赋值,i取余
            let tag=type[i%length];
            //创建一个json对象接收name,categoryId,tag三种参数
            var obj = {};
            obj['name'] = name;
            obj['categoryId'] = categoryId;
            obj['tag']=tag
            //将json对象压入空数组
            array.push(obj);
         }
         //保存该数组
         this.tags=array;

      })

3.总结

这里涉及到了javasrcipt中对象的创建vue中页面间跳转与传参,数组的用法,只是做一个笔记,巩固前端的知识!

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很抱歉,我无法为您提供SpringBoot Vue物业管理系统的代码,因为我是一个语言模型,没有存储任何实际的代码。 不过,如果您想了解有关SpringBoot Vue物业管理系统的信息,我可以尝试回答您的问题,或者提供一些相关的资源和指导。 ### 回答2: Spring BootVue.js是一种常用的技术堆栈,用于构建现代化的Web应用程序。物业管理系统是一个相对复杂的应用程序,涉及到房屋管理、租赁、维护等功能。下面是一个简要的关于使用Spring BootVue.js构建物业管理系统的代码示例。 在后端方面,使用Spring Boot框架来搭建基础代码结构和业务逻辑。例如,创建房屋、合同和维修等实体类,并使用JPA或MyBatis等持久化框架将数据存储到数据库中。同时,配置Spring Security来确保系统的安全性,控制用户访问权限。此外,使用Spring MVC来处理HTTP请求,并提供API接口供前端调用。 在前端方面,使用Vue.js框架来构建用户界面。可以使用Vue Router来实现页面之间的导航和路由功能,以及Vuex来管理全局状态。通过Ajax或axios等工具与后端的API进行数据交互,例如获取房屋信息、添加租赁合同等。使用Element UI或其他UI组件库来设计和实现界面,增加应用程序的美观性和用户友好性。 总结来说,使用Spring BootVue.js可以分别处理后端前端的开发工作,通过API接口进行数据交互,从而构建一个功能齐全且有效的物业管理系统。这样的代码结构可以使开发人员更好地组织项目,并提高开发效率。当然,在实际开发过程中,还需要根据具体需求进行更详细的代码编写和功能实现。 ### 回答3: Spring BootVue.js是两个流行的开发框架和技术,可以结合使用来构建物业管理系统的代码。 首先,可以使用Spring Boot来构建后端代码。Spring Boot是一个快速开发的框架,提供了丰富的功能和良好的开发体验。可以使用Spring Boot来创建RESTful API接口,处理物业管理系统的各种业务逻辑。可以使用Spring Data JPA来处理与数据库的交互,包括数据的增删改查操作。还可以使用Spring Security来实现用户权限管理和身份认证。 同时,可以使用Vue.js来构建前端代码。Vue.js是一个轻量级的JavaScript框架,可用于构建交互式的用户界面。可以使用Vue.js来创建物业管理系统的用户界面,包括登录页面、主页、物业信息管理、费用管理、维修管理等模块。可以使用Vue Router来实现页面的路由跳转,使用Vuex来管理全局状态,使用Element UI或者Ant Design Vue等组件库来提供丰富的UI组件。 在后端前端之间,可以使用Spring Boot提供的RESTful API来实现数据的传递和交互。前端通过Vue.js发送HTTP请求到后端获取数据或者提交数据。后端接收到请求后,处理相应的业务逻辑,并返回相应的数据给前端。可以使用JSON格式来进行数据的传递。 总之,使用Spring BootVue.js可以构建一个功能完善的物业管理系统代码。后端使用Spring Boot处理业务逻辑和与数据库的交互,前端使用Vue.js构建用户界面。两者之间通过RESTful API来实现数据的传递和交互。这样可以实现系统的高效开发和良好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值