не запускается Action из Commandlink

Тема в разделе "Java", создана пользователем Gluk, 5 май 2007.

Наш партнер Genesis Hackspace
Статус темы:
Закрыта.
  1. Gluk

    Gluk Гость

    .jsp страничка:
    Код (Text):
    ...
    <h:commandLink action="#{myBean.gotoPage}">
    <h:outputText value="#{myBean.name}"/>
    <f:param name="nextPage" value="#{myBean.uri}"/>
    </h:commandLink>
    ...
    myBean.class :
    Код (Text):
    ...
    public String gotoPage() {
    System.out.println("Action executed...");
    return "goto";
    }
    ...
    faces-config.xml:
    Код (Text):
    <managed-bean>
    <managed-bean-name>myBean</managed-bean-name>
    <managed-bean-class>MyPackage.MyClass</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    Во-о-о-т...

    Ну, и при нажатии на ссылку (commandLink то бишь) TomCat как-то недобро мне отвечает:
    Код (Text):
    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception
    javax.servlet.ServletException: Error calling action method of component with id _idJsp1:data:0:_idJsp7
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)

    root cause
    javax.faces.FacesException: Error calling action method of component with id _idJsp1:data:0:_idJsp7
    org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
    javax.faces.component.UICommand.broadcast(UICommand.java:106)
    javax.faces.component.UIData.broadcast(UIData.java:513)
    javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168)
    org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343)
    org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
    Сообщения "Action executed..." в логах нет.
    Если заменить навигацию на статическую :
    Код (Text):
     <h:commandLink action="goto">
    всё работает.

    Так чем, собственно, плох мой изначальный вариант?!
     
  2. Gluk

    Gluk Гость

    Так толком и не понял что было-то. Моя вина, что не указал всё, что ещё на страничке было! Но я не думал что там всё так взаимосвязано (тока начинаю писать на Java)!!! Короче, был ещё метод, который вызывался при обновлении страницы. Он каким-то образом блокировал запуск моего action'а. Изменил чуток Bean, добавил в commandLink свойство immediate="true"... Заработало! Методом тыка всё сделал. Если кто объяснит на будущее - буду благодарен.
    А так, всё....
     
  3. pasha Vitebsk

    pasha Vitebsk Гость

    То, что у тебя заработал action при установке атрибута immdate="true" говорит о том, что для какого- то компонента на jsf-странице не выполнился процесс валидации или конвертации. Попробуй на jsf странице закомментировать другие тэги. Так найдешь ошибку.
     
Загрузка...
Похожие Темы - не запускается Action
  1. Avldokuchaev
    Ответов:
    3
    Просмотров:
    51
  2. Cryfier
    Ответов:
    2
    Просмотров:
    74
  3. t0ss1
    Ответов:
    11
    Просмотров:
    211
  4. sainethat
    Ответов:
    13
    Просмотров:
    778
  5. Denybxx
    Ответов:
    6
    Просмотров:
    460
Статус темы:
Закрыта.

Поделиться этой страницей