這個問題,是我自己誤解還是題主寫錯了?
好吧,假如你問的就是遍歷樹的所有節(jié)點。
那么問題來了,據(jù)我了解的是,前后臺ztree的結(jié)構(gòu)是不一樣的,或者說數(shù)據(jù)結(jié)構(gòu)是不一樣的。
那么分情況來說吧:
1、后臺數(shù)據(jù)庫查出來的數(shù)據(jù),其實就是個List<ZtreeNode>的集合。至于集合怎么遍歷,我想你是知道的。
2、前臺的時候拿到的樹已經(jīng)是一個json格式的數(shù)據(jù)了。
如下所示:
var nodes = [
{ "id":1, "name":"test1",
children: [
{ "id":3, "name":"test3"},
{ "id":4, "name":"test4"},
{ "id":5, "name":"test5"}
]
},
{ "id":2, "name":"test2" }
]
json格式遍歷,只需要拿到最高的那個節(jié)點就比較簡單。(現(xiàn)實中,需要的更多的是選中的節(jié)點,而不是最高的節(jié)點)
//獲取當(dāng)前樹
var treeObj = $.fn.zTree.getZTreeObj("tree");
//根據(jù)某個節(jié)點獲取該節(jié)點的子節(jié)點(集合)
var nodes = treeObj.getNodes()[0].children;
//判斷某個節(jié)點是否是父節(jié)點(如果是父節(jié)點,代表還有子節(jié)點需要繼續(xù)循環(huán),反之不需要)
if (sNodes.length > 0) {
var isParent = sNodes[0].isParent;
}
操作2和操作3實質(zhì)上是一樣的。這個問題的本質(zhì)在于,刪除dom對象之后,關(guān)聯(lián)的事件也會刪除。
我試了一下,在我這你的代碼沒有問題,參數(shù)有問題時可以進(jìn)入到 if 塊,比如當(dāng)只傳遞 username 和 password 會給出如下輸出:
Field error in object 'spitter' on field 'lastName': rejected value [null]; codes [NotNull.spitter.lastName,NotNull.lastName,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spitter.lastName,lastName]; arguments []; default message [lastName]]; default message [不能為null]
Field error in object 'spitter' on field 'email': rejected value [null]; codes [NotNull.spitter.email,NotNull.email,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spitter.email,email]; arguments []; default message [email]]; default message [不能為null]
Field error in object 'spitter' on field 'firstName': rejected value [null]; codes [NotNull.spitter.firstName,NotNull.firstName,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spitter.firstName,firstName]; arguments []; default message [firstName]]; default message [不能為null]idea對java的支持那是無可挑剔,不過kotlin開發(fā)出來現(xiàn)在主要用于寫安卓,對于寫web別人jetbrains貌似也沒有太在意,只是說和java是100%兼容。
call()函數(shù)的作用是改變函數(shù)的執(zhí)行上下文,也就是函數(shù)的this指針,第一個參數(shù)就是你想要函數(shù)所執(zhí)行的那個上下文,這里面this,如果是在全局作用域執(zhí)行,那么this指向的就是window。如果add.call()是在另一個非全局上下文,那么指的就是那個??梢钥聪旅娲a:
var add = function(a, b) {
console.log(this); // 增加查看this的語句
return a + b;
}
add.call(this,1,2); // window
var obj = {
func: function () {
add.call(this,1,2);
}
}
obj.func(); // 輸出Object并沒有怎么解析,html只不過加了_md,重點是樣式
看這里 https://material.angularjs.or...
你原來寫的
<md-card>
<img src="card-image.png" class="md-card-image" alt="image caption">
<md-card-content>
<h2>Card headline</h2>
<p>Card content</p>
</md-card-content>
<md-card-footer>
Card footer
</md-card-footer>
</md-card>
看解析后的elements還是那樣。還應(yīng)用了很多md-card開頭的樣式
當(dāng)客戶端第一訪問服務(wù)器的時候,服務(wù)器會返回一個sessionId,一般瀏覽器會使用cookie自動保存sessionId,然后下次請求的時候把這個sessionId帶上,就可以獲取該sessionId對應(yīng)的session的數(shù)據(jù),也就可以這樣獲取數(shù)據(jù)
HttpServletRequest req;
req.getSession().getAttribute();Java8 LocalDate 了解一下
public static void main(String[] args) {
// Java8 LocalDate
LocalDate date = LocalDate.parse("2018-08-01");
// 該月第一天
LocalDate firstDay = date.with(TemporalAdjusters.firstDayOfMonth());
// 該月最后一天
LocalDate lastDay = date.with(TemporalAdjusters.lastDayOfMonth());
// 該月的第一個周一
LocalDate start = date.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
List<String> list = new ArrayList<>();
// 處理每個月的1號不是周一的情況
if (!firstDay.equals(start)) {
StringBuilder strbur = new StringBuilder();
strbur.append(firstDay.toString())
.append("至")
.append(start.plusDays(-1).toString());
list.add(strbur.toString());
}
while (start.isBefore(lastDay)) {
StringBuilder strbur = new StringBuilder();
strbur.append(start.toString());
LocalDate temp = start.plusDays(6);
if (temp.isBefore(lastDay)) {
strbur.append("至")
.append(temp.toString());
} else {
strbur.append("至")
.append(lastDay.toString());
}
list.add(strbur.toString());
start = start.plusWeeks(1);
}
System.out.println(list.toString());
}如果你使用 tcp 的話,對方一定是可以收到的;而如果使用的 udp(一般不用 udp 呢,除非有啥特殊需求),又要保證可靠,那就要在應(yīng)用層實現(xiàn)可靠,可以參考kcp。
因為你一直在操作a的socket,你要把b/c的socket存起來,當(dāng)a上線通過b/c的socket去通知b/c。
swagger 2只能使用httpstaus相關(guān)的 code,例如500,200這些,要想識別自定義的狀態(tài)碼,請使用swagger 1
應(yīng)該是:
spring.datasource.connectionInitSqls = "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;"
jpa.hibernate.connection.CharSet=utf8mb4weekofyear(date)獲取日期是該年第幾周
left(date,7)獲取年月
group by即可
發(fā)請求自動帶上的
mdn cookie
防止XSRF最好的方式是使用CSRF-token。
cookie一般用于保存信息,你向同一個服務(wù)器發(fā)請求時會帶上瀏覽器保存的對于那個服務(wù)器的cookie,而不管你從哪個網(wǎng)站發(fā)請求。
所以后端需要設(shè)置Access-Control-Allow-Origin,瀏覽器會看你的訪問網(wǎng)站是否是被允許的域,如果允許就發(fā)請求并能獲得數(shù)據(jù),如果不受允許那么能發(fā)請求但是js腳本無法獲取返回的數(shù)據(jù)(你仍然能在NetWork中看到返回)。
可以看下這篇文章
Map<String,X> map = new HashMap<>();
// 數(shù)據(jù)填充好
Map<String,X> tempMap = new HashMap<>();
for(Entry<String,X> entry : map.entrySet()){
tempMap.put(entry.getValue(),entry.getKey());
}
這樣就不用再拿Key去找Value了
spring-boot-redis內(nèi)部為我們封裝管理了連接池;性能那塊也不用擔(dān)心。
http://blog.golearns.org/2015...
http://blog.csdn.net/wanghuiq...
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。