Как получить информацию о сеансе на странице xhtml jsf из managedBean? - PullRequest
1 голос
/ 14 марта 2012

У меня есть следующий фрагмент кода в моем файле jsp, который getSession информация:

 <jsp:useBean id="bookBean" class="beans.trade.BookBean" scope="session">
    <% bookBean.setSession( request.getSession() ); %>
 </jsp:useBean>

, сейчас я пытаюсь использовать jsf на странице и в моем managedBean я звонюна EJB и получение их ссылок.Вот пример:

public void setSession(HttpSession session)
{
    super.setSession(session); 
    InitialContext ic = getInitialContext();
    booksLocalOps = ((BookOpsLocalHome) ic.lookup(BookOpsLocalHome.JNDI_NAME)).create();
    books = booksLocalOps.findBooksByOrg("ORG");
}

Теперь у меня есть xhtml страница как:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:icecore="http://www.icefaces.org/icefaces/core"
      xmlns:ice="http://www.icesoft.com/icefaces/component"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:ace="http://www.icefaces.org/icefaces/components"
      xmlns:p="http://java.sun.com/jsf/core"
      xmlns:ice-cc="http://www.icesoft.com/icefaces-composite-comps">
<h:head>
    <title>bookTemplate</title>
    <link rel="stylesheet" type="text/css" href="/xmlhttp/css/rime/rime.css"/>
</h:head>

<h:body>
    <ice:form>
        <p align="center">
            <ice:outputText value="Book Template" style="text-align:center;font-size:40px;"></ice:outputText>
        </p>
        <br/>
        <br/>

        <p align="center">
            <ice:panelGrid columns="2">
                <ice:panelGrid>
                    <ice:outputText value="Book Name:" style="text-align:left;font-size:20px;"
                                    id="bookName"></ice:outputText>
                </ice:panelGrid>
                <ice:panelGrid>
                    <ice:inputText id="BookNameInputText" style="width: 195px;"
                                   value="#{bookBean.bookName}"></ice:inputText>
                </ice:panelGrid>
            </ice:panelGrid>
        </p>
        <br/>
        <br/>
    </ice:form>
</h:body>
</html>

Итак, мой вопрос, как я могу получить session информацию на этой странице?

Обновление

Я отлаживаю приложение, и когда я пытаюсь получить initialContext, я получаю javax.servlet.ServletException: Session cannot be null исключение, не знаю, как с этим справиться,

1 Ответ

0 голосов
/ 14 марта 2012

Посмотрите на здесь для вашего запуска.

Но вы можете получить сеанс с Java-скриптом, который будет противоречить соглашениям ICEfaces.поэтому вам не нужно получать доступ ни к какому сеансу, если у вас есть доступ ко всем данным вашего компонента через теги ICEfaces в файле xhtml.

...