Я нашел способ сделать это, но сейчас это означает взлом части самого кода фреймворка.
Что вам в основном нужно, так это TypeBinder для привязки значения из String к UUID
и небольшое изменение кода в
Воспроизведение / рамки / SRC / воспроизведение / данные / связывания / Unbinder.java
if (!isAsAnnotation) {
// We want to use that one so when redirecting it looks ok. We could as well use the DateBinder.ISO8601 but the url looks terrible
if (Calendar.class.isAssignableFrom(src.getClass())) {
result.put(name, new SimpleDateFormat(I18N.getDateFormat()).format(((Calendar) src).getTime()));
} else {
result.put(name, new SimpleDateFormat(I18N.getDateFormat()).format((Date) src));
}
}
}
//here's the changed code
else if (UUID.class.isAssignableFrom(src.getClass()))
{
result.put(name, src.toString());
}
else {
// this code is responsible for the behavior you're seeing right now
Field[] fields = src.getClass().getDeclaredFields();
for (Field field : fields) {
if ((field.getModifiers() & BeanWrapper.notwritableField) != 0) {
// skip fields that cannot be bound by BeanWrapper
continue;
}
Я работаю с авторами фреймворка над решением этой проблемы. вернусь позже с результатами.
если вам это нужно срочно, примените изменения к коду самостоятельно и перестройте фреймворк, выполнив
муравей
в игровой рамке / каркасе
каталог.