DD>Почему не обновляется поле userPassword? Если обновить страницу на F5, то обновляется.
а какое значение у поля managed-bean-scope в faces-config.xml. случайно не session??
DD>>>Почему не обновляется поле userPassword? Если обновить страницу на F5, то обновляется.
DD>не будет проходить валидацию при пустом поле(required="true")
После обработки слушателем при установленом immediate=true сразу идет переход в фазу формирование ответа renderResponse, соответственно и не осуществляется рендер вашего поля. Есть варианты или поменять логику или когда то заставлял перерисовывать страницу:
FacesContext fc = FacesContext.getCurrentInstance();
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, null);
DD>>Почему не обновляется поле userPassword? Если обновить страницу на F5, то обновляется. P>а какое значение у поля managed-bean-scope в faces-config.xml. случайно не session??
DD>>>>Почему не обновляется поле userPassword? Если обновить страницу на F5, то обновляется.
DD>>не будет проходить валидацию при пустом поле(required="true")
S>После обработки слушателем при установленом immediate=true сразу идет переход в фазу формирование ответа renderResponse, соответственно и не осуществляется рендер вашего поля.
Дык renderResponse же всю страницу заново формирует, в том числе и поле.
Другое дело, если какой-нибудь AJAX-фреймворк используется, но в них обычно можно отдельно задать компонент для обновления
S> Есть варианты или поменять логику или когда то заставлял перерисовывать страницу: S>
S> FacesContext fc = FacesContext.getCurrentInstance();
S> fc.getApplication().getNavigationHandler().handleNavigation(fc, null, null);
S>
DD>>>>>Почему не обновляется поле userPassword? Если обновить страницу на F5, то обновляется.
DD>>>не будет проходить валидацию при пустом поле(required="true")
S>>После обработки слушателем при установленом immediate=true сразу идет переход в фазу формирование ответа renderResponse, соответственно и не осуществляется рендер вашего поля.
SA>Дык renderResponse же всю страницу заново формирует, в том числе и поле. SA>Другое дело, если какой-нибудь AJAX-фреймворк используется, но в них обычно можно отдельно задать компонент для обновления
S>> Есть варианты или поменять логику или когда то заставлял перерисовывать страницу: S>>
S>> FacesContext fc = FacesContext.getCurrentInstance();
S>> fc.getApplication().getNavigationHandler().handleNavigation(fc, null, null);
S>>
S>>но сильно уж не нравится такой способ
SA>ИМХО, эти хаки тут совершенно не к чему.
Здравствуйте, Sergey Astakhov, Вы писали:
SA>ИМХО, эти хаки тут совершенно не к чему.
Согласен
SA>Дык renderResponse же всю страницу заново формирует, в том числе и поле. SA>Другое дело, если какой-нибудь AJAX-фреймворк используется, но в них обычно можно отдельно задать компонент для обновления
Trinidad. partialTriggers точно не спасал.
Проверил на чистом JSF
public class TestBean {
private String text = "test text";
public TestBean() {
}
public String getTextInput(){
return"test text";
}
public void setTextInput(String text){
this.text = text;
}
}
<body>
<h:form>
<h:inputText value="#{testBean.textInput}" required="true"/>
<h:commandButton value="commandButton1" immediate="true"/>
</h:form>
</body>
Поставил точки останова, дебагер показывает, что в метод getTextInput() попадаю только при 1-м развертывании страницы. При нажатии на баттон не попадаю ни в один из методов бина.
И почему я должен был в них попасть, прошла фаза restory view, apply request value и на render response пошли выдавать дерево, обновление значений проскочили.
Здравствуйте, Passer, Вы писали:
DD>>да, а что? P>ставим P><managed-bean-scope>request</managed-bean-scope> P>и все работает.
Странно, в примере ниже я поменял scope на request, должен получать константу а висит измененный текст ?
FireFox, контейнер OC4J, а у вас ?
то:
сначало text="test text";
потом в него записывается значения взятое из input.
а потом при выводе страницы на экран значение этого поля звписывается обратно в input.
P>сначало text="test text"; P>потом в него записывается значения взятое из input. P>а потом при выводе страницы на экран значение этого поля звписывается обратно в input.
Только возвращаю я всегда константу "test text" из getTextInput()
Здравствуйте, Passer, Вы писали:
P>ой сори. не заметил. но попробовал у себя. и нормально работает.если нужно скину готовый проект в котором то что вы написал работает.
Окружение какое, я у себя хочу проверить, что не так