2013-09-08 2 views
0

У меня есть страница Home.xhtml, где есть форма подписания в раздел. Пользователь вводит имя пользователя и пароль и заходит на страницу. Я хочу отобразить одну и ту же страницу, но удалить форму, но отобразить «Приветственное имя пользователя» и ссылку для выхода. Как я могу это сделать с помощью JSF 2.1?Как условно отображать контент на одной странице?

+1

Используйте шаблон, в котором у вас будет заголовок и тело (или что-то подобное). В заголовке вы будете условно отображать страницу с формой входа или страницей с зарегистрированной информацией пользователя. –

+0

Где и как поставить оператор условия? –

ответ

0

Вот мой шаблон:

<?xml version='1.0' encoding='UTF-8' ?> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:f="http://java.sun.com/jsf/core" 
      xmlns:ui="http://java.sun.com/jsf/facelets" 
      > 

     <h:head> 
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
      <h:outputStylesheet name="default.css" library="css"></h:outputStylesheet> 
      <title><ui:insert name="title" /></title> 
     </h:head> 

     <h:body> 
<ui:insert name="body"></ui:insert> 

     </h:body> 
    </html> 

И объявить следующее заявление в вашем Home.xhtml:

<?xml version="1.0" encoding="UTF-8"?> 
<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:h="http://java.sun.com/jsf/html" 
       xmlns:f="http://java.sun.com/jsf/core" 
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       template="/template/templatePage.xhtml"> 

    <ui:define name="title"> 
     Login 
    </ui:define> 

    <ui:define name="body"> 

Here is один лучший пример.

+0

Да, я понимаю, как использовать шаблоны, но как отображать определенный шаблон в требуемом состоянии. Например, есть знаковая форма, и если вход подтвержден, шаблон с ссылкой на пользователя и выходом из системы должен быть отображен иначе, должен быть показан прежний шаблон со знаковой формой. –

+0

Теперь я понимаю, что вы хотите сделать. @BalusC имеет право с предоставленным способом. Вам нужно только создать один элемент авторизации ('@ ManagedBean' или' @ Named'), которые сначала проверяют имя пользователя и код. Одна из возможностей управлять этим авторизацией - Когда имя пользователя и код ОК, компонент настраивает ваше логическое поле на true ... – herry

1

Вы можете использовать атрибут «rendered», чтобы отображать или скрывать ваши элементы. Например:

<h:componentContainingTheSignInForm rendered="#{not bean.signedIn}"> 
    signInForm... 
</h:componentContainingTheSignInForm> 

<h:componentToShowAfterSignIn rendered="#{bean.signedIn}"> 
    Welcome... 
</h:componentToShowAfterSignIn> 
Смежные вопросы