Struts html: флажок запроса - PullRequest
       14

Struts html: флажок запроса

0 голосов
/ 20 апреля 2010

У меня есть следующий код:

<td> <html:checkbox name="userForm" property="isActive" /></td>

В форме у меня есть свойство с именем isActive типа char, как мне получить проверенное значение? Я получаю некоторые символы, такие как o, если проверено.

Я использую userform.getIsActive (). Куда я иду не так? Я хочу значения 'y' или 'n'.

Ответы [ 3 ]

3 голосов
/ 20 апреля 2010

По умолчанию, когда отправляется HTML-форма, содержащая флажок, если флажок установлен, отправляемым значением является строка " on ", и если он не отмечен, для этого поля нет.флажок вообще в данных формы.Таким образом, вы проверяете наличие значения или его отсутствие.

Вы можете изменить, какое значение отправляется, когда флажок установлен, используя атрибут value (который работает как со стандартным тегом HTML).и на теге Struts html:checkbox, в соответствии с документами Struts ).Вы не можете, со стандартным HTML, указать, что значение должно быть отправлено, если флажок не установлен.

Я немного смущен тем, что вы получаете "o" обратно.В документации Struts говорится, что соответствующее свойство будет boolean, а не String.

1 голос
/ 23 мая 2012

Чтобы составить странное поведение флажков HTML-формы, для статических форм-бинов в стойках дан способ сброса 1.x.

Даже если в веб-форме есть флажок, если компонент формы находится в области запроса, нет необходимости в методе сброса в классе компонента формы.

Если компонент формы находится в области действия сеанса (что по умолчанию), а соответствующая веб-форма имеет флажок (и), то метод formbeans требуется для сброса.

1 голос
/ 23 апреля 2010

Если свойство isActive в форме имеет тип char, оно может содержать только один символ. Возможно, поэтому значение "on" в вашем случае усекается до "o".

В любом случае, я бы посоветовал вам изменить тип данных свойства на форму с логическим значением. Так проще и логичнее. Всякий раз, когда вы хотите использовать значение из формы, вы можете очень легко сделать (form.getIsActive()?"y":"n") или что-то подобное в вашем коде Java, если вы должны получить значение в этом точном формате. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...