Foro Oficial de Java

cesarion10000

Lanero Activo
Se unió
15 Dic 2011
Mensajes
1
Buenas tardes
alguien me puede colaborar como hago para que con el framework spring mvc me reconosca los css y las imagenes ya que este tiene un archivo que es el dispatcher-servlet.xml que es el que me direcciona a la capeta jsp.
en el momento de cargar la pagina, carga un jsp sin ninguno de estos componentes

gracias totales
 

Kornholio

Lanero Reconocido
Se unió
18 Mar 2005
Mensajes
192
buenas tardes, tengo una inquietud...he estado tratando de llamar una clase desde una interface pero me sale error al hacerlo :S se que es posible pero no se que estoy haciendo mal....
por ejemplo:

Tengo una clase Dog...

PHP:
class Dog implements Animal {
 
void makeSound(){
barck();
}
void barck(){
System.out.print("Barck!");
}
}

y tengo una interface Animal...
PHP:
public interface Animal{
Animal animal = new Dog();
animal.makeSound(); //--> aqui me sale el error, me dice que el paquete animal no existe
}

alguien me podria ayudar?
 

raven9t

Lanero Reconocido
Se unió
22 Jun 2007
Mensajes
369
buenas tardes, tengo una inquietud...he estado tratando de llamar una clase desde una interface pero me sale error al hacerlo :S se que es posible pero no se que estoy haciendo mal....
por ejemplo:

Tengo una clase Dog...

PHP:
class Dog implements Animal {
 
void makeSound(){
barck();
}
void barck(){
System.out.print("Barck!");
}
}
y tengo una interface Animal...
PHP:
public interface Animal{
Animal animal = new Dog();
animal.makeSound(); //--> aqui me sale el error, me dice que el paquete animal no existe
}
alguien me podria ayudar?

Creo que has entendido mal el concepto de interface en OOP, las interfaces funcionan como mascaras para una clase, es decir como su nombre sugiere es una especie de plantilla que al ser implementada en una clase esta obligatoriamente DEBE implementar los métodos que se han descrito en la interface,

En una interface no debe haber cuerpos de métodos, solo firmas de los mismos además de constantes, eso que ves tu ahí Animal animal = new Dog(); es admitido ya que eso se convierte en un constante una vez compilado el código, es decir Animal animal = new Dog(); se convierte en public static final Animal animal;, el código animal.makeSound(); es el llamado a un método de la clase la cual esta instanciada, pero solo puede ser llamado dentro del cuerpo de un método o constructor y en las interfaces no existen los constructores.

Finalmente si quieres hacer algo así como tener cuerpos de métodos y constructores con algo similar a una interface prueba usar una clase abstracta.
 

Kornholio

Lanero Reconocido
Se unió
18 Mar 2005
Mensajes
192
bueno creo que lo entiendo mejor muchas gracias y solo hay que hacer algunas modificaciones a la clase principal
PHP:
public class Animal{
    Dog d;
    
    public void llamar(){
        d.makeSound();
    }
    
}
 

Kornholio

Lanero Reconocido
Se unió
18 Mar 2005
Mensajes
192
ahora...alguito mas complejo....(para mi....)
si tuviese una clase... por ejemplo:
PHP:
public class Quack {
    public void quack(){
        //implementa el sonido de un pato....
    }
}

y tuviese otra clase que implementa esta otra... por ejemplo...
PHP:
public class QuackBehavior {
    
    Quack q;

    public void quack(){
        q.quack();
    }
    
}

y luego esta clase es invocada desde la clase principal asi:

PHP:
public class Duck {
    
    QuackBehavior quackBehavior;
    
    public void PerformQuack(){
        quackBehavior.quack();
    }

}

cierto?? hasta ahora todo bien...pero...que tal que quisiera crear una nueva clase con un tipo diferente de pato..pero que a su ves este implemente la clase Quack que implementa la clase principal Duck??

intenté con esto....

PHP:
public class MallardDuck extends Duck{
    
    public MallardDuck(){
        quackBehavior = new Quack();
    }

}

pero me sale error... en donde podria estar ese error? o que estoy haciendo mal?
 

raven9t

Lanero Reconocido
Se unió
22 Jun 2007
Mensajes
369
ahora...alguito mas complejo....(para mi....)
si tuviese una clase... por ejemplo:
PHP:
public class Quack {
    public void quack(){
        //implementa el sonido de un pato....
    }
}
y tuviese otra clase que implementa esta otra... por ejemplo...
PHP:
public class QuackBehavior {
    
    Quack q;

    public void quack(){
        q.quack();
    }
    
}
y luego esta clase es invocada desde la clase principal asi:

PHP:
public class Duck {
    
    QuackBehavior quackBehavior;
    
    public void PerformQuack(){
        quackBehavior.quack();
    }

}
cierto?? hasta ahora todo bien...pero...que tal que quisiera crear una nueva clase con un tipo diferente de pato..pero que a su ves este implemente la clase Quack que implementa la clase principal Duck??

intenté con esto....

PHP:
public class MallardDuck extends Duck{
    
    public MallardDuck(){
        quackBehavior = new Quack();
    }

}
pero me sale error... en donde podria estar ese error? o que estoy haciendo mal?

1. Ese error se debe a que intentas instanciar una clase de un tipo diferente al de la propiedad quackBehavior, si te fijas bien QuackBehavior no hereda de Quack por lo tanto no es de tipo Quack y si lo hiciera también generaría un error ya que una variable declarada como clase hija no puede contener una instancia de su padre, pero si es posible a la inversa, eso hace parte del polimorfismo en OOP.

2. QuackBehavior no implementa, compone o agrega que es diferente, ademas eso que hiciste dentro de QuackBehavior se conoce como herencia por delegación el cual es un tipo de herencia simulada para lenguajes que no soportan herencia múltiple.

3. Lo que intentas hacer lo puedes hacer mejor si utilizas interfaces, clases abstractas y sobre escritura de métodos en caso de ser necesario.
 

Kornholio

Lanero Reconocido
Se unió
18 Mar 2005
Mensajes
192
Exelente!! tienes razon muchisimas gracias! ^^

PHP:
public class Quack implements QuackBehavior{
    
    public void quack(){
        System.out.println("Quack!");
    }
    
}

PHP:
public interface QuackBehavior {

    public void quack();
      
}

PHP:
public abstract class Duck {
    
    QuackBehavior quackBehavior;
    
    public Duck(){    
    }
    public abstract void display();
    
    public void PerformQuack(){
        quackBehavior.quack();
    }

}

PHP:
public class MallardDuck extends Duck{
    
    public MallardDuck(){
        quackBehavior = new Quack();
    }

    
    public void display() {
        System.out.print("Es un Mallard!");
    }

}
 

DFREYES

Lanero Reconocido
Se unió
2 Abr 2004
Mensajes
237
HOla .. alguien el el foro sabe cuanto cuesta el examen de certificacion en Java Associate .. o SCJA.. que es el primer nivel . Y que centros autorizados existen en el pais para realizar dicho examen? . pongo la duda aqui porque los hilos que tratan del tema estan demasiado desactualizados y no creo conveniente revivirlos..

gracias


Nadie???
hay alguien certificado en la comunidad Laneros¿?
 

gabrielsimpsons

Lanero Reconocido
Se unió
1 Dic 2006
Mensajes
252
Buenas tardes, tengo el siguiente codigo y no me compila que puede ser?
public class MiClase{
public static void main(String... arg){
for(String str: arg){
System.out.println("El paramtro es:" + str);
}
}
}
 

dasesoft

Lanero Activo
Se unió
21 Dic 2011
Mensajes
16
Que tal a todos !!! Estoy desarrollando una aplicacion enteramente construida en SWT, me está quedando fea pero pareja (esa es mi filosofía). Alguno de ustedes ha experimentado con esta tecnología ??? Tal vez se habra un foro de SWT. O io no lo he encontrado. Saludos !!!
 

Kornholio

Lanero Reconocido
Se unió
18 Mar 2005
Mensajes
192
hola de nuevo! tengo una pregunta...pero esta ves es a nivel de programacion en general. en cuando a los mecanismos para restringir que una plaicacion ya compilada, es decir ke ya tengamos el instalador y queremos hacerla comercial, y restringir la re-distribucion de esta solo a clientes, y a su ves restringir a que estos no la re-distribuyan......cuales mecanismos son mas efectivos? en cuanto a licencias y eso...tenia pensado depronto en tener en cuenta el serial del procesador o talves la mac del equipo...pero no se que otros mecanismos existan o si hay alguno mas efectivo o mas utilizado.....
 

Kornholio

Lanero Reconocido
Se unió
18 Mar 2005
Mensajes
192
bueno ya me ayudaron en el foro de C# ¬¬ gracias de todas formas.....

bueno pero tengo una duda, estube probando el famoso "postgres" y pos no he logrado insertar los primeros datos ¬¬ ya tengo la conexion y la probe y todo bien hasta ahi....pero al momento de hacer un insert pailas... ¬¬"

PHP:
Connection conexion=null;
        Statement sentencia;
        try
        {
            conexion = DriverManager.getConnection(Conexion.ruta, Conexion.usuario, Conexion.pass);
            sentencia = conexion.createStatement();
            System.out.println("Conexion establecida");
            sentencia.execute("insert into Cliente values("+txt_Cedula.getText()+",'"+txt_Nombres.getText()+"','"+txt_Apellidos.getText()+"','"+txt_Direccion+"',"+txt_Telefono+")");
            System.out.println("La informacio se ha guardado correctamente");
        }
        catch(SQLException e)
        {
            try
            {
                if(conexion != null)
                {
                    conexion.close();
                }
            }
            catch(SQLException ex)
            {
                System.out.println("Se produjo un error al momento de guardar la información.\nError:\n"+ex);
            }
        }

este es mi codigo, la conexion no la puse porke si conecta a ver kien me ayuda....el proiblema es que no hace el insert ¬¬....
 

Kornholio

Lanero Reconocido
Se unió
18 Mar 2005
Mensajes
192
es que yo se como hacerlo, a ver....lo puedo hacer con oracle y me funciona, pero aki ahora ke intente con el postgres no sale y la conexion está

PHP:
 public static void connectionUp(){
        try 
        {
            Class.forName("org.postgresql.Driver");
            System.out.println("Driver Up");
        } 
        catch (Exception ex) 
        {
            System.out.println("No se pudo cargar el Driver de la Base de Datos, \nError:\n"+ex);
        }
        
    }
esa carga con la aplicacion, asi que no se que pueda estar mal, pense que seria la sentencia SQL y le agregue despues del nombre de la tabla los (campi1, campo2, campo3, ...) pero anda, tampoco funciona
 

raven9t

Lanero Reconocido
Se unió
22 Jun 2007
Mensajes
369
es que yo se como hacerlo, a ver....lo puedo hacer con oracle y me funciona, pero aki ahora ke intente con el postgres no sale y la conexion está

PHP:
 public static void connectionUp(){
        try 
        {
            Class.forName("org.postgresql.Driver");
            System.out.println("Driver Up");
        } 
        catch (Exception ex) 
        {
            System.out.println("No se pudo cargar el Driver de la Base de Datos, \nError:\n"+ex);
        }
        
    }
esa carga con la aplicacion, asi que no se que pueda estar mal, pense que seria la sentencia SQL y le agregue despues del nombre de la tabla los (campi1, campo2, campo3, ...) pero anda, tampoco funciona

Antes de mostrar porque no te funciona deberías indicar cual es exactamente el error, antes de poderte ayudar, podrías por ejemplo mostrar el Postgresql error?, por ejemplo aquí en esta pagina http://www.postgresql.org/docs/9.0/static/errcodes-appendix.html puedes encontrar la referencia exacta del error. No es solo decir "¡Tengo un error en el insert!" si no proveer por ejemplo el mensaje de la excepción.
 
Arriba