1
我面臨以下問題:從cookie設置值到TextField <Long>在Wicket
我有帶過濾器的檢票頁。過濾器是表單組件包含該文本字段:
TextField<Long> categoryField = new TextField<Long>("categoryId",
BindingModel.of(model, binding.categoryId()),
Long.class);
add(categoryField);
我想允許用戶記住他最後的過濾選項,所以我存儲在cookie中的字段值
CookieUtils utils = new CookieUtils();
utils.save(categoryField);
能正常工作和字段值爲店在餅乾。但問題是,當我想從餅乾讀取值,並通過
utils.load(categoryField);
然後我把它設置爲組件:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
at cz.myproject.domain.MyFilterBindingPath$CategoryIdBinding.setWithRoot(MyFilterBindingPath.java:494)
at cz.myproject.binding.BindingModel.setObject(BindingModel.java:66)
at org.apache.wicket.Component.setDefaultModelObject(Component.java:3061)
at org.apache.wicket.markup.html.form.FormComponent.setModelObject(FormComponent.java:1560)
at org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:1104)
at org.apache.wicket.markup.html.form.FormComponent.setModelValue(FormComponent.java:1046)
at org.apache.wicket.util.cookies.CookieUtils.load(CookieUtils.java:135)
謝謝大家幫忙
什麼是formComponent?這應該在轉換過程中(在updateModel之前)已經失敗,所以也許formComponent的輸入方式與categoryField不同。 – zeratul021
對不起,這是文本中的錯誤... – Daniel
'ClassCastException'在你的(?)'cz.myproject'代碼中引發。我們可能需要查看相關的代碼提取以查看正在發生的事情。 –