【SpringCloud实战开发总结】

2023-11-09

1、Vue——开启Watch监听

1. watch功能
watch:响应数据的变化,,如果需要在声明的时候就响应执行监听函数,使用handler属性,并且需要让immediate为true,如果要监听对象里面的属性的变化,需要让deep为true。

2. 基本用法——属性监听
最简单的用法就是,在开发过程中,一个属性的值需要和另一个绑定,我就遇到过,只不过这两个属性分属于不同的对象中。下面的例子中,我将name的值和fileName通过监听绑定在一起 ,只要在输入框中输入文件名,姓名也随之改变。

  <div>
         <FormItem label="文件名:">
            <input type="text
           "v-model="firstName">
         </FormItem>
</div>
      
<div>
     <span>姓名:{{name}} </span
<div>

data:{
  fileName:'',
  name:''
},

watch:{
   'fileName' :{
       immediate: true,
       handler (curVal,olaVal){
       		if(curVal){
//当fileName被监听时,如果fileName改变,这里可以执行操作。
//例如,将fileName赋值给name
				this.name = curVal
       		}
       }
   }
}

3. handler方法和immediate属性
immediate可以加也可以不加,看需求。你刚进入某一个页面要输入信息了,你需不需要让你监听的方法在刷新页面时就执行watch监听,就靠immediate属性。如果页面刷新时,你用不着监听,那就去掉这个属性,如果你刷新页面的时候就需要监听,这个属性就加上。
所以,immediate属性,加上,绑定时第一次就会执行,不加上,绑定时,第一次不执行。
而绑定immediate属性后,一旦被监听的属性产生变化,就会执行handler方法。

4. 深入监听——对象监听
开发过程中,往往不是单一的属性,而是对象中属性的变化,用法都大同小异,主要是注意deep属性的使用,deep一般不会使用,因为监听太频繁,页面刷新频率太高。

5. 对象赋值
默认情况下 handler 只监听obj这个属性它的引用的变化,我们只有给obj赋值的时候它才会监听到,比如我们在 mounted事件钩子函数中对obj进行重新赋值:

mounted: {
  this.obj = {
    a: '456'
  }
}

6. 那么我们需要监听obj里的属性a的值呢?这时候deep属性就派上用场了:

watch: {
  obj: {
    handler(newName, oldName) {
      console.log('obj.a changed');
    },
    immediate: true,
    deep: true
  }
}

7. 这样的方法对性能影响很大,修改obj里面任何一个属性都会触发这个监听器里的 handler。我们可以做如下处理:

 watch: {
  'obj.a': {
    handler(newName, oldName) {
      console.log('obj.a changed');
    },
    immediate: true,
    // deep: true
  }
}

2、@on-blur

1、使用@on-blur,当失去焦点时,触发事件
失去焦点,就是当鼠标的光标从输入框中离开的时候触发的方法。方法在’methods’中,可以用于校验、赋值、计算等等操作。

3、:disabled

:disabled属性是用来控制,输入框或者选择框等是否可编辑,它的属性本身是布尔类型。当为false时,可编辑,当为true时,不可编辑。
注意:当在html的input中使用这个属性时,input标签中的值无法传递给后端。

可以使用readonly=“readonly”,这个属性也是防止用户修改标签中的值。并且在html中可以将值传递回后端。

4、InputNumber标签中的:max和:min

:max="输入最大值":允许输入的最大值
:min="输入最小值":允许输入的最小值

5、Select标签用于模糊查询

使用filterable标签即可。
	<template>
    <Row :gutter="24">
        <Col span="12">
            <Select v-model="model" filterable>
                <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
            </Select>
        </Col>
        <Col span="12">
            <Select v-model="model1" filterable multiple>
                <Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
            </Select>
        </Col>
    </Row>
</template>
<script>
    export default {
        data () {
            return {
                cityList: [
                    {
                        value: 'New York',
                        label: 'New York'
                    },
                    {
                        value: 'London',
                        label: 'London'
                    },
                    {
                        value: 'Sydney',
                        label: 'Sydney'
                    },
                    {
                        value: 'Ottawa',
                        label: 'Ottawa'
                    },
                    {
                        value: 'Paris',
                        label: 'Paris'
                    },
                    {
                        value: 'Canberra',
                        label: 'Canberra'
                    }
                ],
                model: '',
                model1: []
            }
        }
    }
</script>

效果:
在这里插入图片描述

6、强制渲染的三种方法

1、Vue.set(Object,key,value)
this.$set(Object,key,value)
例子:想给 this.product.name 赋值 保险
this.$set(this.product, name, '保险')

2、this.$forceUpdate()

3、推荐使用
this.$nextTick(()=>{
    //修改数据参数
    this.chartIsShow = true
})

7、增加下拉框宽度

使用下拉框标签时,使用该样式可以让下拉框不局限于输入框的宽度。
使用场景,下拉框中的值的长度远远大于下拉框的长度。
.expand-select .ivu-select .ivu-select-dropdown {
  width: 400px !important;
}

8、vue前端校验

1、:rules=“formRules”:formRules是后续我们自己编写的规则的名称;
2、ref=“rulesForm”:获取整体表单的数据保存在rulesForm,用于校验整体表单做准备;
3、:model="rulesForm:这个是JS处定义的变量,将Form标签控件与rulesForm的json变量绑定

<el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px">
    <el-form-item label="银行卡号:" prop="accountNumber">
       <el-input v-model="rulesForm.accountNumber" style="width:300px" maxlength="19"/>
    </el-form-item>
</el-form>

4、申明表单中单项的属性prop,prop与v-model中绑定的是对应的。prop是必填的,我们定义的校验规则通过prop属性来绑定。

<el-form-item label="用户名称:" prop="userName">
    <el-input v-model="rulesForm.userName" style="width:300px" maxlength="50"/>
  </el-form-item>

5、编写规则,其中userName的规则,就对应前面属性prop="userName"那个表项,对userName表项的校验规则为:必须输入;若为输入显示“请输入用户名称”;当失去焦点时验证执行,失去焦点和@on-blur的性质一样。

 formRules: {
            accountNumber: [
                    {required: true,validator: validatorAccountNumber,trigger: "blur"}
                ]
            }

6、自己定义一个检验方法,然后引入使用

 data () {
  const numberNormalValidate = (rule, value, callback) => {
        if(value){
          if(!NumberUtil.isNumber(value)){
            return callback(new Error('只能输入数字!'));
          }else{
            if(value<0){
              return callback(new Error('只能输入正数!'));
            }
            if(value.length>12){
              return callback(new Error('不能到达万亿!'));
            }
          }
        }
      };
 
  const rateValidate = (rule, value, callback) => {
        if(value){
          if(!NumberUtil.isNumber(value)){
            return callback(new Error('费率只能输入数字!'));
          }else{
            if(value<=0){
              return callback(new Error('费率只能输入正数!'));
            }
            if(value>=1000){
              return callback(new Error('费率不能到达千分位!'));
            }
          }
        }
      };
 }

7、多个校验

<template>
  <div>
    <el-form
      :model="ruleForm"
      :rules="rules"
      ref="ruleForm"
      label-width="100px"
      class="demo-ruleForm"
    >
      <el-form-item label="手机号"  prop="phone">
        <el-input v-model="ruleForm.phone"></el-input>
      </el-form-item>
        <el-form-item label="身份证号"  prop="idNumber">
        <el-input v-model="ruleForm.idNumber"></el-input>
      </el-form-item>
        <el-form-item label="邮箱"  prop="email">
        <el-input v-model="ruleForm.email"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
        <el-button @click="resetForm('ruleForm')">重置</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>



<script>
export default {
  data() {
    return {
      ruleForm: {
        phone: "",
        email: "",
        idNumber: "",
      },
      rules: {
        phone: [
          { required: true, message: "请输入手机号", trigger: "blur" },
          // 这个只能验证手机号
          // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
          { pattern:/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: "blur" }
        ],
        idNumber: [
         { required: true, message: "请输入身份证号", trigger: "blur" },
          { pattern:/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/, message: "请输入合法身份证号", trigger: "blur"}
        ],
          email: [
         { required: true, message: "请输入邮箱", trigger: "blur" },
          { pattern:/^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/g, message: "请输入正确的邮箱", trigger: "blur"}
        ],
      }
    };
  },
  methods: {
    submitForm(formphone) {
      this.$refs[formphone].validate(valid => {
        if (valid) {
          alert("submit!");
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
    resetForm(formphone) {
      this.$refs[formphone].resetFields();
    }
  }
};

9、:maxLength的使用限制

限制长度可以使用 :maxlength=“输入的value的长度”,但是标签中必须要加上type=“text”,
InputNumber标签无法使用maxLength属性。

10、前端校验的两种方式

第一种:

<Form ref="account" :model="prpAccount" :rules="rules" :label-width="150" class="whitebox" :name="formName">
 <div class="ivu-col-span-8">
          <FormItem label="收款方手机号码:" prop="phone" required>
            <Input v-model="prpAccount.phone" :maxlength="11"
            />
          </FormItem>
        </div>
</Form>

data () {
      return {
	    prpAccount:{
		  phone
		},
        rules: {
          phone:{required: true, trigger: 'blur', pattern: /^[1-9][0-9]{10}$/, message: '请录入正确的手机号'},
        },

第二种:

<Form ref="account" :model="prpAccount" :rules="rules" :label-width="150" class="whitebox" :name="formName">
 <div class="ivu-col-span-8">
          <FormItem label="收款方手机号码:" prop="phone" required>
            <Input v-model="prpAccount.phone" :maxlength="11"
            />
          </FormItem>
        </div>
</Form>	

//引用
import {prpAccountRule} from 'pages/endorse/validator/endorseRule'		
		
data () {
      return {
        rules: prpAccountRule,
      }

Rule.js

export const prpAccountRule={
  accountName:{required: true, trigger: 'blur', message:'收款方户名不能为空'},
  accountNo:{required: true, trigger: 'blur', message:'收款方账号不能为空'},
  identifyType:{required: true, trigger: 'blur', message:'收款方证件类型不能为空'},
  identifyNumber:{required: true, trigger: 'blur', message:'收款方证件号码不能为空'},
  province:{required: true, trigger: 'blur', message:'收款方开户行归属省/直辖市不能为空'},
  city:{required: true, trigger: 'blur', message:'收款方开户行归属市不能为空'},
  bankOutlets:{required: true, trigger: 'blur', message:'网点名称不能为空'},
  bankNumber:{required: true, trigger: 'blur', message:'收款方银行行号不能为空'},
  priorityFlag:{required: true, trigger: 'blur', message:'转账汇款模式不能为空'},
  /**
  *pattern可以引用Rugular中的正则表达式
  */
  phone:{required: true, trigger: 'blur',pattern: Regular.MobilePhone, message:'请录入正确的手机号'},
  bankName:{required: true, trigger: 'blur', message:'收款方开户行名称'},
  bankType:{required: true, trigger: 'blur', message:'收款方开户行类型'},
}

//手机号最新正则表达式:

/^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/

===================================================

Regular.js
export default {
  PostCode: /^[1-9][0-9]{5}$/, // 邮编
  Email: /[\w-]+@{1}[\w-]+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig, // 电子邮箱
  Hour: /^(0?[1-9]|1[0-9]|2[0-4])$/, // 小时
  PhoneNumber: /^1[3456789]\d{9}$/, // 电话
  TelNo: /(^1\d{10}$)|(^\d{3,4}-\d{7,8}$)/,
  // TelNo: /((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/, // 座机号码
  Number: /^[0-9]*$/,
  Number_1_100: /^(0|\d{1,2}|100)$/,
  Number2: /^\d+(\.\d{1,2})?$/,
  Number3: /^\d+(\.\d{1,3})?$/,
  Number4: /^(0|-?[0-9]\d*)+(\.\d{1,2})?$/,
  NumberJudge: /^[0-9]+([.]{1}[0-9]{1,2})?$/,//判断非负数并且最多两位小数
  RunMiles: /^\d{1,7}(\.\d{1,2})?$/,
  NumberAndEnglish: /^[0-9a-zA-Z]*$/,
  EngineNo: /^[0-9a-zA-Z\-\s]*$/,
  NoChinese: /^[^\u4e00-\u9fa5]*$/,  // 非中文
  MobilePhone: /^[1-9][0-9]{10}$/,  // 手机
  Phone:/^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/,  //最新手机号正则表达式
  AccountNo: /^[0-9a-zA-Z]*$/,    // 数字或字母
  Date: /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/,   // 日期
  Money: /^(-?(0|[1-9][0-9]{0,8})([.][0-9]{1,2})?)?$/,    // 货币类型
  PositiveMoney: /^((0|[1-9][0-9]{0,8})([.][0-9]{1,2})?)$/,    // 货币类型
  CarNo: /(^[\u4e00-\u9fa5]{1}[A-Z0-9]{5,10}[\u4e00-\u9fa5]?$)|(^WJ[A-Z0-9]{4,9}[\u4e00-\u9fa5]?$)/, // 车牌号,
  // CarNo: /(^[\u4e00-\u9fa5]{1}[A-Z0-9]{5,10}$)|(^WJ[0-9]{4,9}$)/, // 车牌号,
  CarNoL: /^[A-Z0-9]{5,10}\u9886$/, // 领馆车牌号,
  CarNoLM: /^[A-Z0-9]{1}\u9886[A-Z0-9]{4,9}$/, // 领馆摩托车牌号,
  // CarNoL: /([\u4e00-\u9fa5A-Z0-9]{4,9}\u9886$)/, // 领馆车牌号,
  // CarNoLM: /([\u4e00-\u9fa5A-Z0-9]{1}\u9886[\u4e00-\u9fa5A-Z0-9]{3,8})/, // 领馆摩托车牌号,
  CarNoS: /((^\u4f7f[A-Z0-9]{4,9}$)|(^[A-Z0-9]{4,9}\u4f7f$))/, // 使车牌号,
  Percentage: /^100$|^(\d|[1-9]\d)(\.\d+)*$/,   // 百分率
  IdentifyNumber: IdentifyNumberRegex,
  NoEmpty: /\S/,
  Money2:  /^([0-9]{1,9}|[0-9]{1,9}\.[0-9]{1,2})$/,
  Money3: /^\d{1,9}$|^\d{1,9}[.]\d{1,2}$/,// 小数点前最多9位小数点后最多只有两位而且不为负数
}

11、hashMap使用put方法导致空指针异常

1、HashMap<String , String> hashMap=null 或者 private HashMap<String ,String>
2、没有分配内存空间,直接往里面put会导致空指针异常。
3、申明方法:HashMap<String , String> hashMap=new HashMap<>();

12、遇到空指针异常的解决办法

1、定位到NullPointException位置,一般是缺少空的判断。

2、判断是否为空,可以使用!Null,或者isEmpty。

3、对象可以用!null

4、数组,集合,对象中的元素可以用isEmpty,也就是说,需要数组,集合,以及对象本身不是null。如果他们本身就是空的,那么使用!null

5、xx.equals(yy) 使用时,xx为常量,yy为变量,可以有效防止空指针异常。

6、传参时,一定要判断参数是否有值,所以多使用if语句,多判断数据是否为空。

总结:假如一个容器,null是用来判断有没有这个容器,而isEmpty是有这个容器,来判断这个容器中的内容有没有东西,是不是空的!例如,通过debug,发现有itemList这个数组,但是itemList.length = 0,则表示有itemList,但是其中没有数据。

13、关于前端图片加载不出来的解决办法

1、在路径前加上 ~@
例如:src="~@/images/logo-nt.png"

14、数字保留两位小数

使用 xx.doubleValue()

15、常用方法(charAt、continue、indexOf()、push、splice)

1、 charAt: charAt()返回指定索引处的字符。

2、continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。 *continue 在剔除多余元素的用法: 使用while循环,在使用if语句,将不需要的数据剔除。

3、indexOf()方法: 某个元素在数组中首次出现位置的下标。 某个字符在字符串中首次出现位置的下标 obj[] obj.indexOf(find):find元素在obj中首次出现的位置的下标。 obj.indexOf(find,start):find元素从下标为start的位置开始,在obj中首次出现的位置的下标。 find:要查找的元素,必须选。 start:开始位置,根据需要使用。

4、new Number(num).toLocaleString()可以将不是数字的数值变成0

5、push()方法:表示在数组后添加元素。 arrayObject.push(newelement1,newelement2,....,newelementX) 可以添加一个或多个元素。

splice()方法:向数组中添加或移除新的项。使用这个方法会改变数组原来的结构
splice(index,howmany,itemX)
这个方法可以传递一个参数、两个参数、三个参数:
 	传递一个参数的时候表示从这个参数的位置开始一直截取到最后
    var arr = [2,4,6,7,8,9]; 
    console.log(arr);//[2,4,6,7,8,9]
    var n = arr.splice(2);//参数为2表示从索引下标为2的位置开始一直截取到数组的最后;
    console.log(n);//[6,7,8,9]//splice()返回的是截取到的数组
    console.log(arr);//[2,4]//原来的数组结构发生改变,为splice截取之后剩下的数组

 	传递两个参数,第一个参数表示开始的位置,第二个参数表示要删除的个数;如果第二个参数为0,则表示不删除,返回的空数组,原来的数组不变
    var arr = [2,4,6,7,8,9]; 
    console.log(arr);//[2,4,6,7,8,9]
    var n = arr.splice(2,3);//表示从下标位置为2开始删除3个数
    console.log(n);//[6, 7, 8]
    console.log(arr);//[2,4,9]

	传递三个数组的时候

    var arr = [2,4,6,7,8,9]; 
    console.log(arr);//[2,4,6,7,8,9]
    var n = arr.splice(2,0,5);//表示在下标为2的位置,截取0个数组,在下标为2的位置添加一个新项
    console.log(n);//[]
    console.log(arr);//[2, 4, 5, 6, 7, 8, 9]

    当第二个参数不为0的时候

    var arr = [2,4,6,7,8,9]; 
    console.log(arr);//[2,4,6,7,8,9]
    var n = arr.splice(2,3,5);//表示从下标为2的位置开始,删除3个项,在下标为2的位置添加一个数字为5的新项
    console.log(n);//[6, 7, 8]
    console.log(arr);//[2, 4, 5, 9]

16、获取路由

http://localhost:9999/module/product.html#/productEdit?riskCode=3126&inputEditType=05&queryBusinessNo=931261914400000000041&familyNo=
用 windes.location.href 获取路由中的路径

17、IDEA启动失败——端口号被占用

1、先把端口对应的进程杀掉

2、打开cmd

3、输入 netstat -ano|findstr 9031

4、找到pid号 , taskkill /pid xxx /f 就可以了

18、IDEA断点打得太多会导致程序启动失败

如果你在debug模式下启动程序,但是你打的断点太多,导致程序启动失败。但是又不知道断点打在哪里了,可以通过下面的方法取消断点。

如图,上面那个交叉的双红点,点进去后可以直接看到你打了多少断点,可以在里面取消打的断点。
下面那个红点,你点一下颜色会变,表示忽视所有你打的断点,再点一下后又可以恢复所有断点。

在这里插入图片描述

19、如果有新的内容,会继续更新…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【SpringCloud实战开发总结】 的相关文章

  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Struts 2 + Sitemesh 3 集成 - FreemarkerDecoratorServlet 中的 NPE

    我将 Struts 2 版本 2 3 14 3 与 Sitemesh 3 版本 3 0 alpha 2 一起使用 并且在某些情况下遇到 NullPointerException 首先 这是我的 web xml 中的 struts2 site
  • Java中的Object类是什么?

    什么是或什么类型private Object obj Object http download oracle com javase 6 docs api java lang Object html是Java继承层次结构中每个类的最终祖先 从
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 如何从 Maven 存储库引用本机 DLL?

    如果 JAR 附带 Maven 存储库中的本机 DLL 我需要在 pom xml 中放入什么才能将该 DLL 放入打包中 更具体地举个例子Jacob http search maven org artifactdetails 7Cnet s
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我

随机推荐

  • vite+react+ts+eslint+prettier构建react开发项目

    目录 一 构建项目 二 安装eslint和prettier的依赖 三 修改 eslintrc cjs 创建 prettierrc cjs 1 eslintrc cjs文件配置 2 prettierrc cjs文件配置 三 将错误显示在页面上
  • 蓝桥杯嵌入式CT117E-M4学习笔记08-串口通信实验

    文章目录 前言 一 实验原理 二 配置步骤 三 串口发送 1 直接使用HAL USART Transmit发送 2 使用重定向prtinf函数发送 四 串口接收 总结 前言 本节我们学习开发板的串口通信 一 实验原理 1 串口通信原理 详见
  • 浏览器的渲染机制、提升页面性能、错误监控上报

    js运行机制 微任务队列 事件循环 单线程 错误监控 CSRF防范 css盒模型 Dom事件 原型链
  • 接口测试工具-apipost

    apiost Postman Swagger Mock 功能特色 实现多人实时协作 接口自动化测试 选择接口 组成流程 执行流程 基于接口创建在线文档可分享 官网 Apipost API 文档 调试 Mock 测试一体化协作平台 API列表
  • 02.07_两个链表相交

    给你两个单链表的头节点 headA 和 headB 请你找出并返回两个单链表相交的起始节点 如果两个链表没有交点 返回 null 解法一 如果两个链表有相交 那么从后面看一定是相同的 所以只需要把长的移动到和短的链表一样的长度开始遍历即可
  • 低成本副业:开发小程序商城攻略

    随着互联网的普及和电子商务的兴起 越来越多的人选择做点副业 其中开发小程序商城是一个不错的选择 相比传统的实体店 小程序商城的成本更低 而且门槛更低 可以让更多的人参与到副业中来 那么 如何开发自己的小程序商城呢 下面为大家介绍步骤和技巧
  • STM32中遇到的问题--关于串口的一些常见问题

    在单片机的开发过程中 最常用的外设就是串口了 是用来进行bug纠错 log输出的常用工具 也是用来与外部通讯的常见协议之一 但是在使用串口的过程中难免会遇到一些问题 下面就我在工作遇到的一些问题做了一些记录 与大家分享 其实也是为了自己在以
  • [云原生专题-39]:K8S - 核心概念 - 存储抽象- pod配置文件的挂载ConfigMap

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122856681 目录 前言 第1章
  • 安卓逆向入门指南:应用分析与反编译

    安卓逆向入门指南 应用分析与反编译 概述 简要介绍安卓逆向工程的基本概念和背景 解释逆向工程的目的和重要性 以及在安全审计和应用研究中的应用 应用分析 安卓应用文件结构的解析 介绍APK文件的结构 包括AndroidManifest xml
  • c#中new 后面大括号

    C new一个对象的时候 后面的参数不是用小括号吗 下面的大括号是怎么回事 不是数据为什么会用大括号 BarcodeWriter barcodeWriter new BarcodeWriter Format ZXing BarcodeFor
  • jmap、jstat、jinfo、jstack命令详解

    jmap jmap histo pid gt log txt 此命令可以用来查看内存信息 实例个数以及占用内存大小 num 序号 instances 实例数量 bytes 占用空间大小 class name 类名称 C is a char
  • Windows中.exe程序的启动过程和C/C++运行时库<转载>

    很是受益 Windows中 exe程序的启动过程和C C 运行时库 lt 转载 gt Windows系统中 exe后缀的文件一般可以双击运行 编程时 编译出来的最终结果一般也表现为一个exe程序和其他的为程序执行提供支持的dll 我们双击一
  • Unity3d-简单AR游戏

    Unity3d 简单AR游戏 一 图片识别与建模 Vufria模块的导入 首先是安装Vuforia 模块 2017版本后的可以直接使用Unity Hub安装 安装完成后可以直接在软件中使用 然后在菜单目录的GameObject gt Vuf
  • 利用docx4j word转pdf

    依赖
  • 不能导入当前目录下的py模块,不能导入自己写的包

    遇到一个很奇怪的问题 在jupyter里面 明明这个包就在当前目录下就是不能倒入 后来 发现os getcwd 返回的也不是当前文件所在目录 真是奇哉怪也 然后我在终端cd进去我要运行代码的目录 然后在 jupoyter notebook
  • 【计算机考研】从二本到浙大

    报名志愿 浙大 计算机科学与技术学院 软件工程专业 初试成绩 分数不高 大佬轻喷 以下学习方法仅供参考 小tip 放在前头 1 不要照搬别人的学习方案 马克思主义要中国化 学习也要个人化 学习是很私人的事情 一定要找到最适合自己的学习作息和
  • 关于IDEA中tomcat启动控制台乱码(server Tomcat Localhost Log Tomcat Catalina Log乱码)问题

    之前在网上查了好多 但好多都是乱改一通 没有实际效果 经过自己的几次试验后 终于找到了原因 希望可以帮助大家解决问题 少走些弯路 具体解释如下 在这之前说下 tomcat安装目录中 conf文件夹中的logging properties文件
  • linux vim配置

    vimrc config vim 配置 没有vimrc就之间创建新的 vi vimrc set nu 设置显示行号 set tabstop 4 shiftwidth 4 softtabstop 4 tab 等于四个空格 set expand
  • org.dom4j.DocumentException: null Nested exception: null解决

    org dom4j DocumentException null Nested exception null at org dom4j io SAXReader read SAXReader java 484 at org dom4j io
  • 【SpringCloud实战开发总结】

    Vue开发总结 1 Vue 开启Watch监听 2 on blur 3 disabled 4 InputNumber标签中的 max和 min 5 Select标签用于模糊查询 6 强制渲染的三种方法 7 增加下拉框宽度 8 vue前端校验