激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - SpringBoot+Mybatis plus+React實(shí)現(xiàn)條件選擇切換搜索實(shí)踐

SpringBoot+Mybatis plus+React實(shí)現(xiàn)條件選擇切換搜索實(shí)踐

2022-01-24 01:16朱季謙 Java教程

本文主要介紹了SpringBoot+Mybatis plus+React實(shí)現(xiàn)條件選擇切換搜索實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

在寫React前端邏輯時,經(jīng)常遇到可以切換不同條件的列表查詢功能,例如下邊截圖這樣的,其實(shí),這塊代碼基本都一個邏輯,可以一次性將實(shí)現(xiàn)過程記錄下來,待以后再遇到時,直接根據(jù)筆記復(fù)用即可。

SpringBoot+Mybatis plus+React實(shí)現(xiàn)條件選擇切換搜索實(shí)踐

一、首先,是前端React頁面代碼,這類搜索框,一般都是放在Form表單當(dāng)中,然后使用有前綴下拉框選項(xiàng)的Input組件,這類模式的組件是在Input組件當(dāng)中實(shí)現(xiàn)一個addonBefore屬性即可,如下代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
render () {
  let { getFieldDecorator } = this.props.form;
  return (
    <Form onSubmit={this.submit} layout={'inline'}>
      <FormItem>
        {getFieldDecorator('searchUser', {
          initialValue: ""
        })(
          <Input allowClear placeholder="請輸入搜索條件"
            addonBefore={
              getFieldDecorator('condition', {
                initialValue: 'name'
              })(
                <Select style={{ width: 100 }}>
                  <Option value="name">學(xué)生姓名</Option>
                  <Option value="class">班級</Option>
                  <Option value="studentNo">學(xué)號</Option>
                </Select>
              )
            }
          />
        )}
      </FormItem>
    </Form>
  );
}

二、寫好表單頁面后,就可以對該表單邏輯進(jìn)行開發(fā)。因?yàn)樵撍阉骺驅(qū)?yīng)多種方式,但輸入框只有一個,也就是多對一的情況,故而需要做一些轉(zhuǎn)換,需要將輸入框的值,相應(yīng)轉(zhuǎn)換為對應(yīng)下拉框選項(xiàng)的值,因此,可以用switch判斷來做轉(zhuǎn)換,當(dāng)然,你也可以用if-else,我試過if-else的效果,看起來就是一坨......

稍微解釋一下這段代碼,假如下拉框是以“學(xué)生姓名”為維度來搜索,那么表單的getFieldDecorator('condition')屬性值即“name”,也就是values.condition==“name”,就會跳轉(zhuǎn)至values.name = values.searchValue,就意味著是搜索條件name的值,為對應(yīng)輸入框的值values.searchValue。在表單當(dāng)中,輸入框的屬性label是getFieldDecorator('searchUser')。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
submit = (e) => {
  e.preventDefault()
  let { form,  getStudentList } = this.props
  let values = {}
  form.validateFieldsAndScroll({ first: true },
    ((errors, value) => {
      if (errors) {
        message.error(getFormFirstErrorMsg(errors));
      } else {
        values = trimObjectValues(value);
        switch (values.condition) {
          case "name":
            values.name = values.searchValue;
            break;
          case "className":
            values.className = values.searchValue
            break;
          case "studentNo":
            values.studentNo = values.searchValue
            break;
          default:
            break;
        }
        getStudentList(params);
      }
    }))
}

3、最后,就是后端邏輯實(shí)現(xiàn)

?
1
2
3
4
5
6
@Data
public class Student {
    private String name;
    private String className;
    private String sex;
}
?
1
public interface StudentMapper extends BaseMapper<Student> {}

這里使用了Mybatis plus的ORM框架,可以直接使用lambda表達(dá)式的搜索條件進(jìn)行,因?yàn)樗阉鳁l件搜索,故而,需要用like的模糊搜索,搜索條件是name+"%",沒有兩邊都用"%",是因?yàn)槿舻谝粋€模糊條件有索引的話,那么"%"+name+"%"將會造成索引失效。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public List<Student> getStudents(Student reqVO) {
     String name = reqVO.getName();
     String className = reqVO.getClassName();
     String sex = reqVO.getSex();
     List<Student>  students = studentMapper.selectList(
         new QueryWrapper<Student>().lambda()
         
         .like(StringUtils.isNotEmpty(name),Student::getName,name+"%")
                         
         .like(StringUtils.isNotEmpty(className),Student::getClassName,className+"%")
                        
         .like(StringUtils.isNotEmpty(sex),Student::getSex,sex+"%")
                       
        );
        return students;
    }

到此這篇關(guān)于SpringBoot+Mybatis plus+React實(shí)現(xiàn)條件選擇切換搜索實(shí)踐的文章就介紹到這了,更多相關(guān)SpringBoot+Mybatis plus+React條件選擇切換內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://www.cnblogs.com/zhujiqian/p/15344970.html

延伸 · 閱讀

精彩推薦
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程xml與Java對象的轉(zhuǎn)換詳解

    xml與Java對象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經(jīng)有好久沒有升過級了。升級完畢重啟之后,突然發(fā)現(xiàn)好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程20個非常實(shí)用的Java程序代碼片段

    20個非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實(shí)用的Java程序片段,對java開發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java8中Stream使用的一個注意事項(xiàng)

    Java8中Stream使用的一個注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
主站蜘蛛池模板: 亚洲精品欧美二区三区中文字幕 | 国产1区在线观看 | 免费看成年人视频在线 | 久久99国产精品久久99 | 国产手机av在线 | 91高清在线| 最新午夜综合福利视频 | 国产精品美女一区二区 | 亚州综合一区 | 国产羞羞视频在线观看 | 毛片在线看免费 | 污视频在线看 | 色骚综合 | 免费a级黄色片 | 亚洲人成免费 | 国产精品久久久久久久久久久久久久久 | 农村寡妇偷毛片一级 | 欧美精品一区二区久久 | 91精品国产777在线观看 | 一区二区三区在线观看免费视频 | 一级免费特黄视频 | 性色av一区二区三区四区 | 天天操很很操 | 国产精品久久久久久久久久久久午夜 | 欧美三级美国一级 | 国产免费人做人爱午夜视频 | 中国杭州少妇xxxx做受 | 九九精品视频免费 | 亚洲免费高清 | 亚州综合网 | 久久久久国产精品久久久久 | 久久精品视频免费 | 国产精品v片在线观看不卡 成人一区二区三区在线 | 中文字幕亚洲欧美 | 一分钟免费观看完整版电影 | 第一区免费在线观看 | 91成人午夜性a一级毛片 | 毛片在线视频观看 | 一级免费黄色免费片 | 欧美成人se01短视频在线看 | av免费大全 |