Редактировать : Эта проблема, по-видимому, изолирована от Firefox - в Chrome / IE она работает точно так, как ожидалось.Это ошибка в Firefox или я чего-то не понимаю?
У меня есть пружинная форма.Форма содержит, помимо прочего, элемент <select>
, который связан с соответствующим элементом в ModelMap с использованием свойства path в JSP.
Однако видимое значение элемента <select>
не обновляется при обновлении мягкой страницы, даже если значение в карте модели изменяется.Другие ссылки на значение модели обновляются (например, если я просто добавлю $ {MyModelMapValue} - тогда значение будет обновляться при мягком обновлении - поэтому кэширование или что-либо еще не происходит).
После жесткого обновления (CTRL + F5) выбранные обновления.Как я могу обновить выбор при мягком обновлении?
Вариант использования:
Я впервые захожу на страницу и вижу правильные значения, привязанные к полям формы - включая мой элемент <select>
-который привязан к элементу на карте модели, скажем: MyModelMapValue = 'упорядоченный'
В фоновом режиме (скажем, кто-то еще использует браузер), пока у меня страница открыта в моем браузере,значение MyModelMapValue изменяется, и сохраняется это изменение в БД.MyModelMapValue = 'shipped'
Первоначально значения не меняются на моей вкладке - что и следовало ожидать, так как значения не обновляются непрерывно из БД.
Теперь я нажал F5 в своем браузере.
Я вижу, что генерируется нормальный вызов GET, и он попадает в мой контроллер, новая модель генерируется правильно (с MyModelMapValue = 'shipped') и подается вместе с видом в браузер,
Все остальные ссылки на значение модели (например, $ {MyModelMapValue} будут отображаться как «отправленные»
элемент <select>
по-прежнемупривязан к MyModelMapValue, но показывает «упорядоченный» в качестве значения.
Вопрос:
Так ли должна работать привязка Spring Forms или я что-то делаюне так?
Код:
Определение JSP пружинной формы:
<form:form commandName="productHolder" id="productForm" method="post">
<form:input path="product.blah" placeholder="blah" class="blah-blah" />
<br>
... a bunch of other fields ...
<br>
Supplier Status:
<form:select path="product.supplierStatusObjectFromListOfStatusObjects.currentSatus">
<form:options items="${allProductSupplierStatuses}"/>
</form:select>
<br>
Printing the value as a test: ${product.getSupplierStatusFromListOfStatusObjects.currentSatus}
<br>
<button class="btn btn-success" type="submit">Save</button>
</form:form>
Удаленный Java-контроллер:
@RequestMapping(method=RequestMethod.GET)
public String showProductStatusScreen(ModelMap model, @RequestParam(value = "productId", required=false) Long productId){
this.checkAccess(this.getCaller());
Product product = productBusinessObject.getProductById(productId);
ProductHolder productHolder = this.generateProductHolder(product);
model.put("productHolder", productHolder);
//printing it out as a test:
System.out.println(productHolder.GetProduct.getSupplierStatusObjectFromListOfStatusObjects.getCurrentSatus);// <- Prints out the correct value
return "/WEB-INF/jsp/productStatusScreen.jsp";
}