鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ springjpa和thymeleaf配合,兩個(gè)類級(jí)聯(lián)互相引用,HTML頁面使用

springjpa和thymeleaf配合,兩個(gè)類級(jí)聯(lián)互相引用,HTML頁面使用對(duì)象,報(bào)錯(cuò),是thymeleaf的bug嗎?

https://github.com/thymeleaf/...

我使用jpa,通過注解,將兩個(gè)類級(jí)聯(lián)關(guān)聯(lián),
在html頁面中,通過thymeleaf 標(biāo)簽,獲取任何一個(gè)類的對(duì)象的時(shí)候都會(huì)出現(xiàn)

java.lang.StackOverflowError: null
at sun.reflect.misc.ReflectUtil.checkPackageAccess(ReflectUtil.java:164) ~[na:1.8.0_151]
at sun.reflect.misc.ReflectUtil.isPackageAccessible(ReflectUtil.java:195) ~[na:1.8.0_151]
at java.beans.Introspector.getBeanInfo(Introspector.java:164) ~[na:1.8.0_151]
at org.thymeleaf.util.JavaScriptUtils.printObject(JavaScriptUtils.java:353) ~[thymeleaf-2.1.6.RELEASE.jar:2.1.6.RELEASE]
at org.thymeleaf.util.JavaScriptUtils.print(JavaScriptUtils.java:184) ~[thymeleaf-2.1.6.RELEASE.jar:2.1.6.RELEASE]
at org.thymeleaf.util.JavaScriptUtils.printKeyValue(JavaScriptUtils.java:346) ~[thymeleaf-2.1.6.RELEASE.jar:2.1.6.RELEASE]
at org.thymeleaf.util.JavaScriptUtils.printMap(JavaScriptUtils.java:337) ~[thymeleaf-2.1.6.RELEASE.jar:2.1.6.RELEASE]

這個(gè)錯(cuò)誤,這應(yīng)該是thymeleaf的bug吧,thymeleaf有修復(fù)這個(gè)bug嗎?
我現(xiàn)在的解決辦法是使用第三方j(luò)son jar包jackson將對(duì)象轉(zhuǎn)成json傳給前臺(tái),但是需要自己手動(dòng)操作,感覺不好;

有其他更好地方式嗎

回答
編輯回答
歆久

這是thymeleaf 2的bug ,升級(jí)到thymeleaf 3可以解決此bug;

thymeleaf2的時(shí)候是自己處理的json;
thymeleaf3使用的jackson,jackson可以通過使用@JsonIgnoreProperties和@JsonIgnore注解解決 兩個(gè)類互相引用的問題

2017年10月7日 11:28