2017-01-24 4 views
0

У меня есть свойство, называемое createdOn в моем классе java. Я хочу, чтобы это было скрыто на переднем конце, чтобы пользователь не смог его установить (я устанавливаю его значение на заднем конце). Но когда я использую приведенную ниже строку кода на моей странице JSP, я не могу отправить ее на контроллер (отправка данных на контроллер из JSP синтаксически неверна).Скрытие поля даты объекта на странице JSP Spring MVC

<form:hidden path="createdOn"/> 

В моей Java класса это выглядит следующим образом:

public Date getCreatedOn() { 
    return createdOn; 
} 
public void setCreatedOn(Date createdOn) { 
    this.createdOn = createdOn; 
} 

Поскольку я использую ту же форму для редактирования полей, я должен использовать поле createdOn в JSP-странице (в противном случае он будет идти, как ноль). Я могу решить эту проблему путем преобразования форматов даты в строку и наоборот в методе setter и getter. Есть ли альтернативное решение для того же самого в самом интерфейсе?

+0

Когда данные редактируются и передаются на бэкэнд, вы не загружаете данные из базы данных до обновления с новым значением? Если вы загрузите данные, 'createdOn' будет иметь исходное значение. –

+0

Что касается скрытого поля - на самом деле он не скрыт! Пользователь может легко выполнить некоторую отладку браузера, перехватить POST и изменить значение createdOn. Не такая забавная история - JSP использовался для сбора информации и отправки электронной почты, когда сервер получил POST. Ну, JSP получил адрес электронной почты получателя как скрытое поле, чтобы серверный процесс знал, куда отправить электронное письмо. Это была открытая страница. Проверка безопасности обнаружила недостаток, который в принципе позволяет любому перехватить POST, изменить скрытое значение получателя и использовать сервер как спам-машину. –

+0

Привет, W-S, я могу загрузить данные из базы данных на мою страницу JSP, но если я не использую поле createdOn в любом месте переднего конца, значит, он станет null, когда я опубликую измененные данные. Поэтому я стараюсь спрятать поле в передней части. – Manju

ответ

0

У меня такая же проблема, пожалуйста, найдите мое мнение, я надеюсь, что это сработает для вашего запроса.

<form:input class="hideinput" path="createdOn" disabled="true" /> 
+0

Привет, Комал, это не сработало для меня. В любом случае спасибо за ваш ответ. – Manju

+0

это будет работать, если вы хотите, чтобы это было скрыто на переднем конце, чтобы пользователь не смог его установить! –