commandLink не работает при первом нажатии

Я нашел несколько вопросов, которые кажутся связанными с этим, но ни один из них точно не описывает, что происходит с моим веб-приложением.

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

Я использую JSF 1.2 и IceFaces 1.8.1. Это фрагмент кода с первой командой CommandLink (все остальные аналогичны):

<f:view>
    <html>
    <head>
    <ice:outputStyle href="./xmlhttp/css/rime/rime.css" />
    </head>
    <body>
    <ice:form id="nav_form" partialSubmit="true">
        <ice:messages />
        <ice:panelGrid columns="1" width="152">
            <ice:panelCollapsible expanded="true">
            <f:facet name="header">
                <ice:panelGroup>
                    <ice:outputText value="Cliente"
                        style="font:bold 12px;color:#484848" />
                </ice:panelGroup>
            </f:facet>
                <ice:panelGrid columns="1">
                    <ice:commandLink actionListener="#{cliente.defineText}" 
                        action="cliente" id="consulta">
                        <ice:outputText value="Consulta" />
                    </ice:commandLink>

Важные замечания:

  • Я использую некоторые включения, но нет вложенных форм.
  • Нет модели данных. На данный момент приложение является только прототипом со ссылками и статическими текстами.
  • Я использую обычные HTML-теги <table> ... </table> для оформления главной страницы, хотя знаю, что это не обязательно лучший выбор.

person Paulo Guedes    schedule 08.10.2010    source источник


Ответы (2)


Тот же ответ, что и этот: страница не обновляется после выполнения действия называется

Я удалил JSF 1.2 Apache Myfaces и заменил их jar-файлами Sun RI.

person Paulo Guedes    schedule 15.10.2010

Убедитесь, что вы вручную установили уникальные идентификаторы для каждой из командной ссылки, commandSortHeader и т. д. Нет необходимости удалять какие-либо jar-файлы из пути к классам!

person Thaza    schedule 01.07.2011
comment
(а) ОП уже делает это; (б) вам не нужно устанавливать идентификаторы вручную в Facelets, если у вас нет перекрестных ссылок в XHTML или у вас нет кода Java, который на них опирается; (c) замечание о JAR и пути к классам кажется совершенно бессмысленным. - person user207421; 02.07.2011