>

로그인 상태 (로그, 기록되지 않음)로 인해 두 개의 다른 페이지 (패널 그룹에서)를로드하는 페이지가 있습니다. 이것이 메인 스위치입니다 :

template.xhtml  추신 selector.page는 기본적으로 "홈페이지"입니다

<h:panelGroup layout="block" styleClass="contenitore">
    <h:panelGroup layout="block">
        <h:panelGroup layout="block" styleClass="menu_table" id="login">
            <ui:insert name="login_homepage" />
        </h:panelGroup>
        <h:panelGroup layout="block" id="content">
            <c:catch>
                <ui:include src="/#{selector.page}/#{selector.page}.xhtml" />
            </c:catch>
        </h:panelGroup>
    </h:panelGroup>
</h:panelGroup>       

homepage.xhtml

<h:panelGroup rendered="#{!user.loggedIn}">
    <h:panelGroup layout="block" styleClass="content_title">
        Homepage
    </h:panelGroup>
</h:panelGroup>
<h:panelGroup rendered="#{user.loggedIn}">
    <ui:include src="/profile/profile.xhtml" />
</h:panelGroup>

login

<ui:define name="login_homepage">
    <h:form id="formLogin" prependId="false">
        <h:inputHidden value="#{selector.page}" id="page" />
        <h:panelGroup rendered="#{!user.loggedIn}">
            <h:outputScript name="jsf.js" library="javax.faces" target="head" />
            <h:outputLabel styleClass="menu_span" value="Username" />
            <h:inputText value="#{user.nickname}" id="nickname" />
            <h:outputLabel styleClass="menu_span" value="Password" />
            <h:inputSecret value="#{user.password}" id="password" />
            <h:outputLabel styleClass="menu_span">
                <h:commandButton value="Login" action="#{user.checkLogin}">
                    <f:ajax event="action" execute="nickname password page" render=":login :content err"/>
                </h:commandButton>
            </h:outputLabel>
        </h:panelGroup>
        <h:panelGroup rendered="#{user.loggedIn}">
            <h:outputLabel styleClass="menu_title" value="LOGGED" />
        </h:panelGroup>
    </h:form>
</ui:define>

profile.xhtml

<h:panelGroup layout="block" id="profileContent">
    <h:form id="formProfile">
        <h:outputScript name="jsf.js" library="javax.faces" target="head" />
        <h:panelGroup rendered="#{profileSelector.profilePage=='main'}">
            <ui:include src="/profile/profile_main.xhtml" />
        </h:panelGroup>
        <h:panelGroup rendered="#{profileSelector.profilePage=='edit' || profileSelector.profilePage=='editConfirm'}">
            <ui:include src="/profile/profile_edit.xhtml" />
        </h:panelGroup>
    </h:form>
</h:panelGroup>

ProfileSelector는 @ViewScope 범위입니다. 페이지를로드하고 im을 기록하면 ProfileSelector Bean이 초기화됩니다. 그렇지 않으면, 로그인하지 않고 로그인을 수행하면 컨텐츠가 홈페이지에서 프로파일로 변경되지만 Bean은 초기화되지 않습니다. im이 기록되지 않은 경우 어떻게이 Bean을 초기화 할 수 있습니까?

위 코드는 문제를 이해하기에 충분하다고 생각합니다.

건배

  • 이전 ajax - javascript youtube API를 사용하여 웹 페이지에서 YouTube로 비디오를 업로드하고 싶습니다
  • 다음 macos - openssl이 필요하지 않으며 OpenSSL을 설치하고 루비를 다시 빌드하거나 (선호하지 않음) 비 HTTPS 소스를 사용할 수 없습니다