日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java自定义字段_自定义字段的设计与实现(Java实用版)

發(fā)布時(shí)間:2024/9/30 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java自定义字段_自定义字段的设计与实现(Java实用版) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

自定義字段又叫做“開放模型”,用戶可以根據(jù)自已的需求,添加需要的字段,實(shí)現(xiàn)個(gè)性化定制。

使用自定義字段的目的,使用自定義字段解決哪些問題

如現(xiàn)有一套CRM系統(tǒng),客戶模塊中客戶信息,需要實(shí)現(xiàn)不同行業(yè),不同業(yè)態(tài)都可以個(gè)性化需求。那我們知道客戶信息表T_CUSTOM,如姓名,性別,電話

等基本通用屬性是可以通用的,但如藥療行業(yè)客戶需要記錄體重,血壓等,而運(yùn)輸行業(yè)的客戶更關(guān)注貨物品類,產(chǎn)量等,而又如快速消費(fèi)品行業(yè)關(guān)注客戶的愛好,年齡,星座啊,這些問題該如何處理呢?

自定義字段的設(shè)計(jì)與實(shí)現(xiàn)

a、相關(guān)數(shù)據(jù)庫(kù)表說明

自定義模板表:T_CUSTOM_FIELD_TEMPLATE

客戶信息表:T_CUSTOM

業(yè)態(tài)行業(yè)類型與自定模板對(duì)應(yīng)用表:T_BUSINISS_TEMPLATE

注:T_BUSINISS_TEMPLATE不同的業(yè)態(tài)、行業(yè)類型對(duì)應(yīng)不同的自定義模板

b、相關(guān)數(shù)據(jù)庫(kù)表結(jié)構(gòu)說明

1

自定義模板表:T_CUSTOM_FIELD_TEMPLATE

注:模板內(nèi)容如下

[{"label":"貨品名稱","fieldName":"productName","type":"textfield","required":true,"sequence":1,"rows":3,"minLength":5,"maxLength":20,"vtype":"none","vtypeContent":"","vtypeText":"","defaultValue":"apple Mac","readOnly":false},{"label":"產(chǎn)量","fieldName":"turnout","type":"numberfield","required":true,"sequence":2,"minValue":5,"maxValue":20,"decimalPrecision":2,"defaultValue":20000,"readOnly":false},{"label":"愛好","fieldName":"loves","type":"combobox","required":false,"sequence":4,"singleOption":[{"itemValue":"1","itemName":"看書"},{"itemValue":"2","itemName":"羽毛球"}],"defaultValue":"1"}]

1

運(yùn)輸行業(yè)擴(kuò)展模板

自定義字段的類型有,文本框、數(shù)字框、日期框、單選框、多選框

新增文本框類型的自定義字段

新增數(shù)字框類型的自定義字段

新增日期框類型的自定義字段

新增單選框框類型的自定義字段

新增多選框類型的自定義字段的界面可以參考單選框界面。

看到這里,有一定基礎(chǔ)的同志們肯定會(huì)有豁然開朗的感覺。

數(shù)據(jù)庫(kù)表中數(shù)據(jù)如下:

醫(yī)療行業(yè)新增用戶界面

快消行業(yè)新增用戶界面

運(yùn)輸行業(yè)新增用戶界面

點(diǎn)新增客戶按鈕后,會(huì)根據(jù)用當(dāng)前的不同業(yè)態(tài)自動(dòng)加載不同的自定義模板,在界面顯示不同的業(yè)務(wù)自定義字段。

d、涉及相關(guān)知識(shí)點(diǎn)的剖析和處理

? 新增不同的自定義字段保存到自定義模板中

//獲取post請(qǐng)求的所有參數(shù)以及參數(shù)對(duì)應(yīng)的值

Map params = request.getParameterMap();

JSONObject jsonObject = new JSONObject();

for (String key : params.keySet()) {

String[] values = params.get(key);

for (int i = 0; i < values.length; i++) {

String value = values[i];

jsonObject.put(key, value);

}

}

String content = jsonObject.toString();

用上面的代碼,新增不同的自定義字段在后臺(tái)就可以統(tǒng)一處理了,然后將自定義字段的JSON拼裝起來。

? 新增用戶時(shí),在后臺(tái)獲取到模板內(nèi)容,擴(kuò)展字段怎么顯示在前臺(tái)新增頁面。

后臺(tái)代碼如下:

String content = customFieldTemplate.getContent();

request.setAttribute("content", content);

在頁面動(dòng)態(tài)加載自定義模板,頁面代碼如下:

style="width:96%;height:200px;padding:5px;">

var dataStr = '${content}';

var jsondatas=eval("("+dataStr+")");

var resultHtml = "";

$.each(jsondatas,function(i,n){

if(n.sequence == (i + 1)){

resultHtml = resultHtml + '

if(n.type == 'textfield'){

resultHtml = resultHtml + '

';

}else if(n.type == 'numberfield'){

resultHtml = resultHtml + '

';

}else if(n.type == 'datetime'){

resultHtml = resultHtml + '

';

}else if(n.type == 'combobox'){

resultHtml = resultHtml + '

';

$.each(n.singleOption,function(j,m){

resultHtml = resultHtml + ''+m.itemName+'';

});

resultHtml = resultHtml + '

';

resultHtml = resultHtml + '

';

}

resultHtml = resultHtml + '

';

}

});

$('#customFieldDiv').append(resultHtml);

小結(jié)

自定義字段的另一種解決方案EAV(Entity-Attribute-Value),大家可以百度。

自定義模板內(nèi)容和客戶表中的護(hù)展字段模板數(shù)據(jù)都是大文本類型(longtext), mysql5.7 支持json,可以將這兩個(gè)字段改為json類型。另外hibernate映射數(shù)據(jù)庫(kù)中的json字段解決方案可以參考http://blog.csdn.net/qian_meng/article/details/48394379。通過上面兩點(diǎn)可以對(duì)系統(tǒng)進(jìn)行進(jìn)一步的優(yōu)化。

自定義字段的類型,除文本框、數(shù)字框、日期框、單選框、多選框外還可以添加圖片、聲音、視頻等其他類型。

自定義字段數(shù)量很多時(shí),又類型不同,怎樣布局,使用頁面更美觀、舒服也有一定難度。

————————————————

版權(quán)聲明:本文為CSDN博主「蔚藍(lán)色天空sky」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/ytangdigl/java/article/details/70145910

總結(jié)

以上是生活随笔為你收集整理的java自定义字段_自定义字段的设计与实现(Java实用版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。