Данные в <h: inputText readonly = «true»> исчезают при нажатии кнопки команды

Я использую JSF 1.1. У меня есть страница JSF с bean-областью запроса и полем ввода только для чтения.

<code><h:inputText id="dt" value="#{bean.sdate}" readonly="#{bean.disable}" />
<a onclick="cal('dt');"><img src="fr.gif" border="0"></a>
</code>

Когда я устанавливаю значение ввода с помощью JavaScript и нажимаю на кнопку команды, данные в поле ввода исчезают.

Как это вызвано и как я могу это решить.

 BalusC30 апр. 2012 г., 20:26
@ Даниэль: ты описываешьdisabled, неreadonly.
 Ajay Sharma15 апр. 2016 г., 09:07
@ BalusC это также произошло только для чтения = true
 maialithar30 апр. 2012 г., 15:00
Я знаю, что некоторые люди, отвечающие на вопрос о SO, могут считаться волшебниками, но они ничего не могут сделать без примера кода.
 Daniel30 апр. 2012 г., 16:19
если для вашего readonly установлено значение true, значение # {bean.sdate} не будет отправлено на сервер ... и, таким образом, будет потеряно ...
 maialithar30 апр. 2012 г., 16:12
Я действительно не знаю, что происходит вcal(some String variable) метод ...

Ответы на вопрос(1)

Решение Вопроса

что свойство установлено вreadonly. Если это оцениваетtrue, тогда JSF не будет обрабатывать переданное значение и, следовательно, модель не будет обновляться. Если вы хотите установить его наreadonly при рендеринге видаа такж иметь JSF для обработки переданного значения, тогда вам нужно будет сделать это для оценкиtrue только на этапе ответа рендеринга. Вы можете использоватьFacesContext#getRenderResponse() за это. Вы должны сделать это в своемisDisable() метод.

public boolean isDisable() { // TODO: rename to isReadonly().
    return FacesContext.getCurrentInstance().getRenderResponse();
}

Примечание: в JSF2 вы можете получить доступ кFacesContext#getCurrentInstance() по#{facesContext} в представлении это также экономит некоторый шаблон в модели:

<h:inputText ... readonly="#{facesContext.renderResponse}" />

Также обратите внимание, что когда вы используете JSF2<f:viewParam>, тогда этот подход больше не будет работать с запросами GET. Смотрите также Сделайте p: календарь только для чтения для объяснения и обходного пути.

 Addicted30 мая 2012 г., 06:34
В то же время мне было интересно, если я хочу обновить модель на любом другом этапе, например, «проверка процесса», то как я могу сделать то же самое, что вы сделали здесь.

Ваш ответ на вопрос