Линия передачи команд JSF, РЕГИСТРАЦИЯ и кнопка "Назад"

Это должно получить Вас достаточно близкий:



private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    ForceDataValidation();
}


private static void ForceDataValidation()
{
    TextBox textBox = Keyboard.FocusedElement as TextBox;

    if (textBox != null)
    {
        BindingExpression be = textBox.GetBindingExpression(TextBox.TextProperty);
        if (be != null && !textBox.IsReadOnly && textBox.IsEnabled)
        {
            be.UpdateSource();
        }
    }

}


5
задан Steve Claridge 4 August 2009 в 13:31
поделиться

2 ответа

Это не поможет вам создать ссылку на клиенте, но помните о outputLink .

Существует элемент перенаправления для правил навигации, который может помощь при некоторых проблемах с обновлением.

<navigation-rule>
  <display-name>navBack</display-name>
  <from-view-id>/navBack.jsp</from-view-id>
  <navigation-case>
    <from-outcome>navTo</from-outcome>
    <to-view-id>/navTo.jsp</to-view-id>
    <redirect />
  </navigation-case>
</navigation-rule>

Если ничего не помогает, вы можете сделать URL перенаправления самостоятельно, как в этом действии:

public String doAction() {
  System.out.println("Did some non-idempotent operation");
  FacesContext context = FacesContext.getCurrentInstance();
  ExternalContext extContext = context.getExternalContext();
  Application app = context.getApplication();
  ViewHandler viewHandler = app.getViewHandler();
  String url = viewHandler.getActionURL(context, "/navTo.jsp");
  url = url + (url.indexOf('?') < 0 ? '?' : '+') + "foo=bar";
  url = extContext.encodeResourceURL(url);
  try {
    extContext.redirect(url);
  } catch (IOException e) {
    throw new FacesException(e);
  }
  return null;
}

Предостережения: я не могу вспомнить, правильно ли я кодирую URL.

Различные Сторонние библиотеки добавляют различные функции. Я не уверен, было ли что-то сделано в JSF 2.0 в этой области, но, возможно, стоит взглянуть на это.

4
ответ дан 14 December 2019 в 13:43
поделиться

Ага. JSF построен на основе POST, и это одна из самых больших проблем JSF. Взгляните на JAX-RS / Seam или Spring для закладок GETable страниц.

1
ответ дан 14 December 2019 в 13:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: