Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    JSF con collegamento a db

    Ciao, io e un'altra ragazza stiamo facendo un progettino per uno stage, ma ci siamo arenate e abbiamo bisogno di un consiglio.
    Noi abbiamo un DB mappato con hibernate, e ora stiamo facendo la parte web con JSF. Il nostro problema è che non riusciamo a stampare a video le stesse cose che stampiamo in console. Abbiamo un login attraverso un id, una volta validato questo dovrebbe aprire una pagina di benvenuto +(nomeproprietà), ma la pagina stampa soltanto benvenuto, senza la propertie. Per stampare abbiamo utilizzato il seguente tag: <hutputText value=" #{Dipendenti.nome}" />.

    Se avete idee sono tutte benvenute!

    Grazie

  2. #2
    Non dovete utilizzare la classe Hibernate che mappa la tabella sul DB. Dovete utilizzare un oggetto che rappresenta l'utente loggato e salvarlo in sessione. Quello che chiedete può essere fatto nel modo seguente:


    Pagina login.jsp:

    Codice PHP:
    <%@ page contentType="text/html"%>
    <%@ 
    taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ 
    taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

    <
    f:view>
        <
    html>
            <
    head><title>JSF Simple Login Example</title></head>

            <
    body>
                <
    h:form>
                    <
    table>
                        <
    tr>
                            <
    td><h:outputText value "Username: " /></td>
                            <
    td><h:inputText id="loginname" value="#{SimpleLogin.loginname}" /></td>
                        </
    tr>
                        <
    tr>
                            <
    td><h:outputText value "Password: " /></td>
                            <
    td><h:inputSecret id"password" value="#{SimpleLogin.password}" /></td>
                        </
    tr>
                        <
    tr>
                            <
    td></td>
                            <
    td><h:commandButton value "Login" action="#{SimpleLogin.CheckValidUser}" /></td>
                        </
    tr>
                    </
    table>
                </
    h:form>
            </
    body>
        </
    html>
    </
    f:view
    dove SimpleLogin è la classe che utilizzate per verificare la correttezza del login. Ad esempio:

    Codice PHP:
    import java.util.Map;
    import javax.faces.context.ExternalContext;
    import javax.faces.context.FacesContext;

    public class 
    SimpleLogin{
        
    String loginname;
        
    String password;

        public 
    SimpleLogin(){}

        public 
    String getLoginname(){
            return 
    loginname;
        }

        public 
    void setLoginname(String loginname){
            
    this.loginname loginname;
        }

        public 
    String getPassword(){
            return 
    password;
        }

        public 
    void setPassword(String password){
            
    this.password password;
        }

        public 
    String CheckValidUser(){
            
    boolean loginOK=false;
            
    /**
             * Verifichi sul DB l'esistenza dell'username, cambiando quindi lo stato della variabile loginOK. Qui puoi usare le classi hibernate che ti servono
             */
            
            
    if(loginOK){
                
                
    LoggedUser loggedUser = new LoggedUser();
                
    loggedUser.setUsername(loginname);
                
    //salvo l'oggetto in sessione
                
    FacesContext ctx FacesContext.getCurrentInstance();
                
    ExternalContext ectx ctx.getExternalContext();
                
    Map<String,Objectectx.getSessionMap();
                
    m.put("LoggedUserInSession",loggedUser);
                return 
    "success";
            }
            else{
                return 
    "fail";
            }
        }

    Se la login è corretta, crei un oggetto LoggedUser che contiene i dati dell'utente appena loggato. Settati i valori metti questo oggetto in sessione, in modo da poterlo recuperare ovunque ti serva. La classe LoggedUser sarà una cosa del genere:

    Codice PHP:
    public class LoggedUser {

        private 
    String username;

        
    /** Creates a new instance of LoggedUser */
        
    public LoggedUser() {
        }

        
    /**
         * @return the username
         */
        
    public String getUsername() {
            return 
    username;
        }

        
    /**
         * @param username the username to set
         */
        
    public void setUsername(String username) {
            
    this.username username;
        }

    A questo punto non resta che creare la pagina che viene visualizzata in caso di corretto login:

    Pagina welcome.jsp
    Codice PHP:
    <%@ page contentType="text/html"%>
    <%@ 
    taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ 
    taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

    <
    f:view>
        <
    html>
            <
    head><title>JSF Simple Login Example</title></head>

            <
    body>
                <
    h:form>
                    <
    table>
                        <
    tr>
                            <
    td><h:outputText value ="Benvenuto, #{sessionScope.LoggedUserInSession.username}" /></td>
                        </
    tr>
                    </
    table>
                </
    h:form>
            </
    body>
        </
    html>
    </
    f:view
    Questo è il file faces-config.xml:

    Codice PHP:
    <?xml version='1.0' encoding='UTF-8'?>



    <faces-config version="1.2" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd[/url]">
        <managed-bean>
            <managed-bean-name>SimpleLogin</managed-bean-name>
            <managed-bean-class>SimpleLogin</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
        <navigation-rule>
            <from-view-id>/login.jsp</from-view-id>
            <navigation-case>
                <from-action>#{SimpleLogin.CheckValidUser}</from-action>
                <from-outcome>success</from-outcome>
                <to-view-id>/welcome.jsp</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-action>#{SimpleLogin.CheckValidUser}</from-action>
                <from-outcome>fail</from-outcome>
                <to-view-id>/login.jsp</to-view-id>
            </navigation-case>
        </navigation-rule>
    </faces-config>
    Buon divertimento
    Al mio segnale... scatenate l'inferno!

  3. #3
    Grazie mille! Il tuo suggerimento c'è servito!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.