Foro Oficial de Java

pablo_emiliob

Lanero Reconocido
Se unió
26 Sep 2006
Mensajes
110
Buenos días

Tengo una duda con la navegacion en JSF.

Se supone que la navegacion en JSF se maneja a traves del Faces-Config.xml, obviamente.

Lo que yo queria hacer era que, si en un sitio mio me logueaba, que me dejase en la misma pagina, pero entonces como hago para saber en que pagina estoy actualmente???...

Gracias!!!
 

raven9t

Lanero Reconocido
Se unió
22 Jun 2007
Mensajes
369
Buenos días

Tengo una duda con la navegacion en JSF.

Se supone que la navegacion en JSF se maneja a traves del Faces-Config.xml, obviamente.

Lo que yo queria hacer era que, si en un sitio mio me logueaba, que me dejase en la misma pagina, pero entonces como hago para saber en que pagina estoy actualmente???...

Gracias!!!

Me imagino que lo que necesitas es esto, te dejo el código:

este es el caso de navegación hacia la misma pagina
PHP:
    <navigation-rule>
        <from-view-id>/index.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>login</from-outcome>
            <to-view-id>/index.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>

este en el cdi o managed bean

PHP:
@Named("mibean")
@SessionScoped
public class MiBean implements Serializable {
    
    private String contrasenia;
    public String getContrasenia() { return contrasenia; }
    public void setContrasenia(String contrasenia) {this.contrasenia = contrasenia; }

    private String usuario;
    public String getUsuario() { return usuario; }
    public void setUsuario(String usuario) { this.usuario = usuario; }
    
    private boolean autenticado;
    public boolean getAutenticado() {return autenticado; }
    public void setAutenticado(boolean autenticado) { this.autenticado = autenticado; }
    
    public String loginUser(){
        FacesContext context = FacesContext.getCurrentInstance();
        if(this.usuario.equals("admin") && this.contrasenia.equals("admin")){
            this.autenticado = true;
        }
        return "login";
    }
    
    public String logoutUser(){
        this.autenticado = false;
        this.usuario = "";
        this.contrasenia = "";
        return "login";
    }
}

esta es la pagina

PHP:
        <h:form>    
            <h:panelGrid columns="2"  >
                <h:outputLabel rendered="#{!mibean.autenticado}" value="usuario" for="txtUsuario"/>
                <h:inputText rendered="#{!mibean.autenticado}" value="#{mibean.usuario}" id="txtUsuario"/>
                                
                <h:outputLabel rendered="#{!mibean.autenticado}" value="contraseña" for="txtPass"/>               
                <h:inputText rendered="#{!mibean.autenticado}" value="#{mibean.contrasenia}" id="txtPass"/>   
                
                <h:outputText rendered="#{mibean.autenticado}" value="Autenticado como:" id="txtInfo"/> 
                <h:panelGroup >                               
                    <h:outputText rendered="#{mibean.autenticado}" value="#{mibean.contrasenia}" id="txtInfoUsuario"/> 
                    &nbsp;
                    <h:outputText rendered="#{mibean.autenticado}" value="#{mibean.usuario}" id="txtInfoPass"/>
                </h:panelGroup>
                
                <h:commandButton rendered="#{!mibean.autenticado}" value="login" action="#{mibean.loginUser}" />
                <h:commandButton rendered="#{mibean.autenticado}" value="logout" action="#{mibean.logoutUser}" />
            </h:panelGrid>
            
        </h:form>

Lo anterior es un ejemplo de autenticacion muy simple, si das las credenciales validas te permite navegar hacia la misma pagina con el efecto de que su contenido cambia dependiendo si el usuario está autenticado o no.

En cuanto a conocer en que vista o pagina estas usa la siguiente instruccion del contexto faces.

FacesContext.getCurrentInstance().context.getViewRoot().getViewId();

te devuelve el nombre de la vista o pagina actual. Espero sea esto lo que necesitas.
 

edoantonio

Lanero Activo
Se unió
3 Jul 2011
Mensajes
1
me pueden decir como hacer para imprimir un mazo de cartas desordenado, puedo hacerlo con numeros con un random, pero con letras no y asi es como ocupo hacerlo?
 

R4

Lanero Reconocido
Se unió
29 Ene 2003
Mensajes
398
me pueden decir como hacer para imprimir un mazo de cartas desordenado, puedo hacerlo con numeros con un random, pero con letras no y asi es como ocupo hacerlo?

Puede hacer un array de letras

String[] letras = new String[]{"J","Q","K","A"};

y luego puede pedir una letra al random

String letra = letras[Math.floor((Math.random()*4))];
 

NSlaver

Jack of all trades
Se unió
16 Abr 2002
Mensajes
3,673
me pueden decir como hacer para imprimir un mazo de cartas desordenado, puedo hacerlo con numeros con un random, pero con letras no y asi es como ocupo hacerlo?

Asignarle un numero, agregarlas a una colección y sacarlas de acuerdo a un random dentro del rango de las existentes.
Una división te daría el tipo de carta y el modulo el numero........
 

pablo_emiliob

Lanero Reconocido
Se unió
26 Sep 2006
Mensajes
110
Error en JSF

Buenos dias

Estoy en un proyecto con JSF 1.2 usando RichFaces 3.3.3 y cada vez que dejo inactiva una pagina por 30 mins aprox. me sale este error:



Porfa si saben algo de este error avisenme porque he intentado CASI todo y no he podido.

Gracias!
 

raven9t

Lanero Reconocido
Se unió
22 Jun 2007
Mensajes
369
Buenos dias

Estoy en un proyecto con JSF 1.2 usando RichFaces 3.3.3 y cada vez que dejo inactiva una pagina por 30 mins aprox. me sale este error:


Porfa si saben algo de este error avisenme porque he intentado CASI todo y no he podido.

Gracias!

Eso pasa porque toda sesión cuando esta inactiva cierto tiempo(en tu caso 30 min, eso lo configuras con <session-timeout> en el archivo web.xml) el servidor la cierra automáticamente, en el caso de jsf debido a que este tiene un ciclo de vida en seis etapas, cuando se ejecuta la etapa Restore view(restaurar vista) y si la sesión ha terminado, el arbol de componentes que habia construido JSF ya no existe, por ende cuando el servidor intenta reconstruir la vista no encuentra tal arbol de componentes y crea uno nuevo, ese arbol nuevo es diferente al anterior por lo que suelta una excepcion diciendo que no puede reconstruir la vista. Lo mejor que puedes hacer si no lo has hecho ya es capturar la excepcion con el código de error 500, eso lo haces en el archivo web.xml asi:

<web-app>
<error-page>
<error-code>500</error-code>
<location>mipagina.jsf</location>
</error-page>
</web-app>

entonces cuando la sesión termine, que te mande a esa pagina y en esa pagina colocas un enlace para que el usuario se autentique otra vez.
 

pablo_emiliob

Lanero Reconocido
Se unió
26 Sep 2006
Mensajes
110
Expresion Regular

buenos días

Como seria una expresión regular en java para un string que contenga AL MENOS una letra y un numero???

GRACIAS!
 

jpgu7

Lanero Reconocido
Se unió
20 Feb 2009
Mensajes
604
Cordial saludo.

Actualmente estoy desarrollando un proyecto Stand Alone que requiere permisos de administrador para realizar la copia de ciertos archivos. En win XP no se presenta ningún problema si inició con una cuenta de administrador y lo ejecuto, el problema viene por ejemplo con Win 7, ya que aún cuando yo inicie sesión como administrador la ejecución de un programa no se realiza con permisos de administrador a menos que se solicite. La pregunta es, ¿Cómo puedo iniciar la aplicación para que solicite permisos de administrador automáticamente, como lo hace cualquier Software cuando se instala por primera vez? Sin necesidad de dar clic derecho ejecutar como administrador o sin necesidad de cambiar la seguridad. Si tiene sugerencias les estaré infinitamente agradecidos, feliz día.
 

DarkFulgoreII

Lanero Reconocido
Se unió
31 Ago 2008
Mensajes
1,110
Cordial saludo.

Actualmente estoy desarrollando un proyecto Stand Alone que requiere permisos de administrador para realizar la copia de ciertos archivos. En win XP no se presenta ningún problema si inició con una cuenta de administrador y lo ejecuto, el problema viene por ejemplo con Win 7, ya que aún cuando yo inicie sesión como administrador la ejecución de un programa no se realiza con permisos de administrador a menos que se solicite. La pregunta es, ¿Cómo puedo iniciar la aplicación para que solicite permisos de administrador automáticamente, como lo hace cualquier Software cuando se instala por primera vez? Sin necesidad de dar clic derecho ejecutar como administrador o sin necesidad de cambiar la seguridad. Si tiene sugerencias les estaré infinitamente agradecidos, feliz día.

Eso es un metadato en el archivo que se va a ejecutar, el cual le indica al sistema operativo que requiere derechos de administrador. por ello, no se hace desde la aplicacion, lo que se puede hacer es:
1. Cambiar el dato en el archivo (mediante archivo->propiedades->compatibilidad->ejecutar como administrador)
2. Si ese programa es llamado por otro, es posible que se pueda utilizar el comando runas
runas /noprofile /user:Administrator programa.exe
Esto es el equivalente a un sudo en linux....

Espero te sirva
 

jpgu7

Lanero Reconocido
Se unió
20 Feb 2009
Mensajes
604
Eso es un metadato en el archivo que se va a ejecutar, el cual le indica al sistema operativo que requiere derechos de administrador. por ello, no se hace desde la aplicacion, lo que se puede hacer es:
1. Cambiar el dato en el archivo (mediante archivo->propiedades->compatibilidad->ejecutar como administrador)
2. Si ese programa es llamado por otro, es posible que se pueda utilizar el comando runas
runas /noprofile /user:Administrator programa.exe
Esto es el equivalente a un sudo en linux....

Espero te sirva

Cordial saludo, y gracias por responder. Investigando me he encontrado que desde Java directamente no es posible, pero existen alternativas para manejar el UAC de windows. http://mark.koli.ch/2009/12/uac-pro...e-requested-operation-requires-elevation.html
 

angelvzla_338

Lanero Reconocido
Se unió
15 Ago 2007
Mensajes
131
hola a todos, soy nuevo en java asi que le pido un favor, la cosa es q necesito hacer una pequeña aplicacion en java usando eclipse, es un trabajo final de semestre el cual el contenido es pila, lista y cola, y me toco hacer un de lista, la cosa es q busq en internet y quede igual a cuando empec, el ejercicio pide lo siguiente, es de una seleccion de voleibol de la cual se divid en 2 grupos, infantiles de 9 a 13 años y juveniles de 14 a 17, pide nombre y edad, la cosa es q debe generarce una lista de infantiles y otra de juveniles y si el usuario lo decesa optener una lista completa de todos los jugadores, es hay en las lista q tengo mi gran duda, como puedo crearls?
AYUDAAAAAAAAAA
 

ANDRESOTE_8

Tigre VIP.
Se unió
18 Ene 2009
Mensajes
7,839
hola a todos, soy nuevo en java asi que le pido un favor, la cosa es q necesito hacer una pequeña aplicacion en java usando eclipse, es un trabajo final de semestre el cual el contenido es pila, lista y cola, y me toco hacer un de lista, la cosa es q busq en internet y quede igual a cuando empec, el ejercicio pide lo siguiente, es de una seleccion de voleibol de la cual se divid en 2 grupos, infantiles de 9 a 13 años y juveniles de 14 a 17, pide nombre y edad, la cosa es q debe generarce una lista de infantiles y otra de juveniles y si el usuario lo decesa optener una lista completa de todos los jugadores, es hay en las lista q tengo mi gran duda, como puedo crearls?
AYUDAAAAAAAAAA

Investigue en Google "estructuras de datos en java".
 

Linderman

Lanero Activo
Se unió
28 Abr 2010
Mensajes
14
Hola a todos, creo que este es el mejor espacio para preguntar esto. Voy a desarrollar una aplicación web en eclipse, estoy usando Tomcat v7.0, primefaces 2.2.1 y el jre7. Sin embargo al momento de correr la aplicación me genera este error:
'Launching Tomcat v7.0 Server at localhost' has encountered a problem. The specified JRE installation does not exist.
Me da a pensar que debo utilizar otra versión del JRE, en ese caso cual seria y si para manejarla basta con descargarla sin tener que quitar la que tengo?
Gracias de ante mano por la colaboración de todos
 

HHCastan

Lanero Reconocido
Se unió
25 Oct 2005
Mensajes
1,657
Hola a todos, creo que este es el mejor espacio para preguntar esto. Voy a desarrollar una aplicación web en eclipse, estoy usando Tomcat v7.0, primefaces 2.2.1 y el jre7. Sin embargo al momento de correr la aplicación me genera este error:
'Launching Tomcat v7.0 Server at localhost' has encountered a problem. The specified JRE installation does not exist.
Me da a pensar que debo utilizar otra versión del JRE, en ese caso cual seria y si para manejarla basta con descargarla sin tener que quitar la que tengo?
Gracias de ante mano por la colaboración de todos

Todo apunta a que te falta definir la variable JAVA_HOME en las opciones avanzadas del sistema. Debería tener un valor parecido a este:

C:\Program Files\Java\jre6

Recuerda reiniciar la ventana de comandos
 

dark_klown

Lanero Reconocido
Lanero VIP
Se unió
17 Ene 2005
Mensajes
871
hola muy buenos dias necesito de la ayuda de uds, alguien me puede prestar una matinito y decirme
como valido un jcombobox que cuando el valor sea 0 me diga que debo escoger una opcion.

ejmp



tengo este jcombobox que me trae los datos de una db sql y quiero que cuando cierre me diga que debe escojer almenos una opcion de ese combo

gracias
 

R4

Lanero Reconocido
Se unió
29 Ene 2003
Mensajes
398
hola muy buenos dias necesito de la ayuda de uds, alguien me puede prestar una matinito y decirme
como valido un jcombobox que cuando el valor sea 0 me diga que debo escoger una opcion.

ejmp



tengo este jcombobox que me trae los datos de una db sql y quiero que cuando cierre me diga que debe escojer almenos una opcion de ese combo

gracias

Póngale un listener al combo box:

jComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jComboBox_actionPerformed(e);
}
});

Y luego en su método llame al selectedItem, que es el ítem seleccionado... y ahí compara y decide que hacer.

private void jComboBox_actionPerformed(ActionEvent e) {
jComboBox.getSelectedItem();
}

P.D.
Intente esmerarse un poquito en la ortografía, que es más agradable leer cosas bien escritas.
 
Arriba