Я делаю проект в JSF, и я столкнулся с следующей проблемой.JSF/Primefaces span onClick автоматически вызывает Backing Bean
Когда я создаю следующий срок:
<ui:composition>
<div id="header" class="header">
<p style="float: right; padding-right: 20px">
Welcome, #{infoGet.username} <span class="glyphicon glyphicon-off" style="color: darkred; cursor: pointer;" onclick="#{Login.logout()}" />
</p>
</div>
</ui:composition>
Он называет этот метод выхода из системы()
public void logout() {
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
try {
FacesContext.getCurrentInstance().getExternalContext().redirect("Landing.xhtml");
} catch(IOException e) {
e.printStackTrace();
}
}
Однако на странице загрузки в OnClick внутри диапазона получает автоматически вызывается, если я:
public void logout() {
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
}
И обновить страницу, сессия будет признана недействительной.
Есть ли способ вызвать метод «onClick» из диапазона? Мне нужно, чтобы это была метка, поэтому я могу правильно использовать элементы значка Bootstrap. Я знаю, что onClick обычно используется для Javascript, но было бы логично работать с JSF.
EDIT с раствора @ Луиджи-Мендоса
Изменена композиции:
<ui:composition>
<div id="header" class="header">
<h:form style="float: right; padding-right: 20px">
<h:commandLink action="#{Login.logout()}" styleClass="clearCommand">
<span class="glyphicon glyphicon-off" style="color: darkred; cursor: pointer;" />
</h:commandLink>
</h:form>
<p style="float: right; padding-right: 20px">
Welcome, #{infoGet.username}
</p>
</div>
</ui:composition>
Сделано clearCommand:
#clearCommand {
cursor: pointer;
}
Левый вход в систему, как это было, и все работает прямо сейчас ,