VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 发展党员管理系统所遇到的问题

  1. json转字符串,会把null转成"",所以当向后台传对象时,必须将外键从""改为null,不然后端无法转换json

  1. post提交了字符串,而后台用了@requestBody注解,应该提交对象

[http-nio-80-exec-5] WARN  o.s.w.s.m.s.DefaultHandlerExceptionResolver - Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported]

前端请求传Json对象则后端使用@RequestParam;

前端请求传Json对象的字符串则后端使用@RequestBody。

  1. 如果存的是字符串,json对象必须转换成字符串,不然存储的是Object object

  1. select * from user where role='2sad'

数据库中int类型的字段,传入String类型的数据,会截取字符串进行查找

  1. cookie:将"password"的时间设置为过去,也就是把它删除,期待读出空,但读出了错误的信息(很长一条)

原因是存入了User对象,里面包含了password字段,所以读出的错误信息来自于User对象。

所以将“=”写成“==”,如:document.cookie = key + "==" + val + ";expires=" + date.toUTCString();

  1. element时区问题,element的时间是世界时间,数据库存的是中国时间,世界时间慢8小时,所以页面显示早一天

解决方法:显示前,将时间转化

// 自定义格式化时间,避免时区误差
Vue.prototype.formatterTime = (time) => {
  const date = new Date(time);
  const year = date.getFullYear();
  const month = date.getMonth() + 1;
  const day = date.getDate();
  /*const hour = date.getHours()
  const minutes = date.getMinutes()
  const seconds = date.getSeconds()
  const dateTime = year + '-' + month + '-' + day + ' ' + checkLength(hour) + ':' + checkLength(minutes) + ':' + checkLength(seconds)*/
  const dateTime = year + '-' + month + '-' + day;
  return dateTime;
}
​
// 时分秒为个位时,前面加0
function checkLength (str){
  str = str.toString();
  if (str.length < 2) {
    str = '0' + str;
  }
  return str;
}
  1. js数组赋值,改变其中一个,另外一个数组也会改变,vue的数据绑定

解决方法:把要赋值的数据转成json字符串,再转成json对象赋值(必须新建一个对象,不然都是指向同一个内存地址)

let list = JSON.parse(JSON.stringify(this.tableData));

  1. 导出表格,里面的嵌套属性无法识别

解决方法:添加新的键值对

exportXlsx() {
  let tHeader = ['学号','姓名','性别','专业','年级','二级基层党组织','党支部'];
  let filterVal = ['sno','name','sex','major','grade','secondParty','partyBranch'];
  let list = JSON.parse(JSON.stringify(this.tableData));
  for (let i = 0; i < list.length; i++) {
    list[i].sex=list[i].sex == '0' ? '男' : '女';
    list[i].secondParty=list[i].user.secondParty.name;
    list[i].partyBranch=list[i].user.partyBranch.name;
  }
  let name = '发展党员名单';
  this.exportExcel(tHeader,filterVal,list,name);
},
  1. element的DatePicker日期(范围)选择器赋值不成功,发现model上的数据发生改变,而页面上的视图数据没有改变

解决方法:使用this.$set();

数组使用示列:this.$set(arr, index, val)。

对象使用示例:this.$set( obj, key, val).

  1. 前端插入数据时,用到刚添加的对象的id,但id为数据库自增的,获取不到

解决方法:在xml里加一个主键自增

<insert id="insert" keyProperty="id"  useGeneratedKeys="true" parameterType="User">
    insert into user(username,password,state,role,second_party,party_branch,updatetime)
    values(#{username},#{password},#{state},#{role.id},#{secondParty.id},#{partyBranch.id},sysdate())
</insert>
@PostMapping("/add")
public ResultMessage add(@RequestBody User user) {
    logger.debug("enter add");
    logger.debug("user=" + user);
    boolean result = service.add(user);
    //logger.debug("userId="+user.getId()); 此时的user里有id
    ResultMessage resultMessage;
    if (result) {
        resultMessage = new ResultMessage(true, user, 0, "添加成功");
    } else {
        resultMessage = new ResultMessage(false, null, 0, "添加失败");
    }
    return resultMessage;
}

 出处:https://www.cnblogs.com/stoneThree/p/15230202.html

 

相关教程