Я использую док-станцию Primefaces в качестве панели навигации. Я хочу, чтобы он изменил одно из своих изображений в зависимости от того, вошел ли пользователь в систему или нет. Я что-то сделал, но это не работает, потому что я вижу два значка одновременно, а также не могу нажать кнопку выхода. Вы можете дать мне какой-то совет?
Это панель навигации (она создана в шаблоне, который используют все страницы):
<h:body>
<h:form>
<p:dock position="top">
<p:menuitem value="Naslovna" icon="unsecuredimages/naslovna.png"
url="main.xhtml" alt="The image could not be found." />
<p:menuitem value="Register" icon="unsecuredimages/register.png"
url="registration.xhtml" alt="The image could not be found." />
<p:menuitem value="Cesta pitanja" icon="unsecuredimages/faq.png"
url="faq.xhtml" alt="The image could not be found." />
<p:menuitem value="Login" icon="unsecuredimages/login.png" url="login.xhtml" rendered ="securityController.checkLogged() == false"/>
<p:menuitem value="Logout" icon="unsecuredimages/logout.png" action="securityController.logOut()" rendered ="securityController.checkLogged() == true"/>
</p:dock>
</h:form>
Вот как выглядит bean-компонент securityController Backing:
@ManagedBean
@RequestScoped
public class SecurityController {
@EJB
private IAuthentificationEJB authentificationEJB;
...
public boolean checkLogged() {
return authentificationEJB.checkAuthentificationStatus();
}
...
}
В процессе также участвует EJB:
@Stateful(name = "ejbs/AuthentificationEJB")
public class AuthentificationEJB implements IAuthentificationEJB {
@PersistenceContext
private EntityManager em;
....
// Check if user is logged in
public boolean checkAuthentificationStatus() {
// 1-Check if there is something saved in the session(This means the
// user is logged in)
if ((FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().get("userRole") != null)) {
// 2-If there is not a user already loged, then return false
return true;
}
return false;
}
...
Как вы думаете, как я могу добавить эту функцию на панель навигации?
Обновить
<p:menuitem value="Login" icon="unsecuredimages/login.png" url="login.xhtml" rendered ="securityController.checkLogged"/>
<p:menuitem value="Logout" icon="unsecuredimages/logout.png" action="securityController.logOut()" rendered ="!securityController.checkLogged"/>
я также изменил на:
public boolean isCheckLogged() {
return authentificationEJB.checkAuthentificationStatus();
}
Вот так выглядит навигация. Как видите, я не вижу значков входа или выхода.

Как я могу это исправить?