2014-12-10 5 views
0

У меня возникли проблемы с проверкой клиента GWT, используемой с RequestFactory и редакторами.Проверка подлинности Gwt с помощью редактора и фабрики запросов

Редактирование кода:

LocalityRequest localityContext = //create Request 
Locality locality = //Locality Entity Proxy loaded from the server 
driver.edit(locality, localityContext); //Edit the proxy 
request = localityContext.updateLocality(locality); 

И сохранить код:

this.localityContext = (LocalityRequest) driver.flush(); //Flush the request 
Set<ConstraintViolation<LocalityProxy>> violations = validator.validate(this.locality); //Local validate the object 
if (!violations.isEmpty()) { 
    Set<ConstraintViolation<?>> sets = new HashSet<ConstraintViolation<?>>(violations); 
    driver.setConstraintViolations(sets); 
    editLocalityView.setErrors(sets); //give errors to the editors 
    return; 
} 
localityContext.fire(); //else send the request 

Мои проблемы в том, что локальная проверка всегда проверять на загруженной версии, а не под редакцией версии пользователя. Как мы можем получить очищенный объект, сохраненный в запросе?

благодарит

ответ

0

Вам нужно кэшировать/сохранить отредактированный объект (см here для более подробной информации):

LocalityRequest localityContext = //create Request 
Locality locality = //Immutable Locality Entity Proxy loaded from the server 
Locality modifedLocality = ctx.edit(locality); // Create Mutable copy 
driver.edit(modifedLocality, localityContext); //Edit the mutable proxy 
request = localityContext.updateLocality(modifedLocality); 

И в экономии кода:

this.localityContext = (LocalityRequest) driver.flush(); //Flush the request 
Set<ConstraintViolation<LocalityProxy>> violations = validator.validate(this.modifedLocality); //Local validate the mutable Proxy 
if (!violations.isEmpty()) { 
    Set<ConstraintViolation<?>> sets = new HashSet<ConstraintViolation<?>>(violations); 
    driver.setConstraintViolations(sets); 
    editLocalityView.setErrors(sets); //give errors to the editors 
    return; 
} 
localityContext.fire(); //else send the request 
+0

Спасибо, нормально CTX .edit() выполняет driver.edit. Если мы передадим изменяемый прокси драйверу, драйвер не вызовет метод редактирования? –

+0

AFAIK, вызов редактирования драйвером является nop, когда вы передаете изменяемый прокси-сервер –