hej,
napotkalam problem z rzecza wydawaloaby sie tak prosta-jak wylogowywanie. na formularzu mam przycisk 'wyloguj'. po jego kliknieci wywolywana jest akcja 'logout':
<ice:commandButton value="Logout" action="#{usersBean.logout}"/>
oraz kod metody logout:
public String logout() {
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
session.invalidate();
return "logout";
}
w faces-config.xml mam:
<navigation-rule>
<from-view-id>/userPanel.jspx</from-view-id>
<navigation-case>
<from-action>#{usersBean.logout}</from-action>
<from-outcome>logout</from-outcome>
<to-view-id>/index.jspx</to-view-id>
</navigation-case>
</navigation-rule>
to jednak nie powoduje przekierowania na strone index.jspx. w sumie po kliknieciu na przycisk 'Logout' pojawia mi sie takie okienko ze sesja wygasla, z przyciskiem 'reload'. Poczytalam troche i okazalo sie ze zabicie sesji powoduje ze nie sa juz utrzymywane reguly nawigacji. Ktos na jakims forum proponowal, ale by metodzie logout() zwracac tylko stringa i przekierowywac na strone idex.jspx. czyli kod tej metody wygladalby:
public String logout() {
return "logout";
}
a wlasnie w pliku index.jspx za kazdym razem zabijac sesje jesli istnieje. czyli na poczatku dac:
<html>
<head>
<%session.invalidate();%>
</head>
<body>
<jsp:forward page="index.jspx" />
</body>
</html>
pomysl mi sie spodobal i chcialam tego uzyc, ale niestety w plikach z rozszerzeniem *.jspx nie moge uzywac tagow jsp. tzn niby moge, bo netbeans sam mi podpowiada ze moge uzyc '<%'. jednak gdy wklejam powyzszy kod, to czepia sie ze "The content of elements must consist of well-formed character data or markup". Czyli wcale nie pozwala mi uzyc '<%'. Czy ktos z Was wie moze dlaczego? lub ewentualnie ma inny pomysl jak moge zrobic wylogowywanie?
pzdr,
misty