Dudas de Java

Etiquetado: 

Viendo 15 entradas - de la 76 a la 90 (de un total de 128)
  • Autor
    Entradas
  • #6861

    Anónimo
    Inactivo

    <!– [if gte mso 9]><xml>
    <o:OfficeDocumentSettings>
    <o:AllowPNG/>
    </o:OfficeDocumentSettings>
    </xml><![endif]–>

    <span lang=»es-CU» style=»mso-ansi-language: #5C0A;»>Primero que todo muchísimas gracias por la calidad, coherencia y gratuidad de todos los cursos que ofrece soy un fiel seguidor del canal de youtube y ahora mismo esto bien avanzado en el de Java.</span>

    <span lang=»es-CU» style=»mso-ansi-language: #5C0A;»>Tengo un problema que no he logrado encontrar solución por mí mismo 🙁 seguro es una bobería, pero no me doy cuenta, y es específicamente utilizando la etiqueta del forEach en la clase correspondiente al video 243 ocurre al parecer cuando trato de acceder a los valores de nombre, apellido etc , yo no tuve problemas con esta etiqueta en la clase anterior sin embargo en esta me lanza un error algo así:</span>

     
    <h1>HTTP Status 500 – Internal Server Error</h1>

    <hr class=»line» />

    <b>Type</b> Exception Report

    <b>Message</b> An exception occurred processing [/RecorreEmpleados.jsp] at line [65]

    <b>Description</b> The server encountered an unexpected condition that prevented it from fulfilling the request.

    <b>Exception</b>

    org.apache.jasper.JasperException: An exception occurred processing [/RecorreEmpleados.jsp] at line [65]
    
    62: <tr class="cabecera"><td>Nombre</td><td>Apellido</td><td>Puesto</td><td>Salario</td></tr>
    63: 	<c:forEach var="s" items="${losEmpleados}">
    64: 		<tr>
    65: 		<td>${s.nombre}</td><td>${s.apellido}</td><td>${s.puesto}</td><td>${s.salario}</td>	
    66: 		</tr>	
    67: 	</c:forEach>
    68: </table></body>
    
    
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:593)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:482)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    

    <b>Root Cause</b>

    javax.el.PropertyNotFoundException: Property [apellido] not found on type [pildorasinformaticas.com.jsptags.Empleado]
    	javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:260)
    	javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:212)
    	javax.el.BeanELResolver.property(BeanELResolver.java:347)
    	javax.el.BeanELResolver.getValue(BeanELResolver.java:92)
    	org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
    	org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
    	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:702)
    	org.apache.jsp.RecorreEmpleados_jsp._jspx_meth_c_005fforEach_005f0(RecorreEmpleados_jsp.java:236)
    	org.apache.jsp.RecorreEmpleados_jsp._jspService(RecorreEmpleados_jsp.java:188)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    

    <b>Note</b> The full stack trace of the root cause is available in the server logs.

    <hr class=»line» />

    <h3>Apache Tomcat/9.0.1</h3>
    Mi codigo 🙁

    <%@ page language=»java» contentType=»text/html; charset=ISO-8859-1″
    pageEncoding=»ISO-8859-1″%>
    <%@ taglib uri=»http://java.sun.com/jsp/jstl/core» prefix=»c» %>

    <%@ page import=»java.util.*, java.sql.*, pildorasinformaticas.com.jsptags.Empleado» %>

    <%

    ArrayList<Empleado> datos= new ArrayList<>();

    Class.forName(«com.mysql.jdbc.Driver»);

    try{

    Connection miConexion=DriverManager.getConnection(«jdbc:mysql://localhost:3306/proyecto_jsp?autoReconnect=true&useSSL=false», «root», «»);

    Statement miStatement=miConexion.createStatement();

    String intruccionSql=»SELECT * FROM EMPLEADOS1″;

    ResultSet rs=miStatement.executeQuery(intruccionSql);

    while(rs.next()){

    datos.add(new Empleado(rs.getString(1),rs.getString(2),rs.getString(3),rs.getFloat(4)));

    }

    rs.close();

    miConexion.close();

    }catch(Exception e){

    out.println(«Ha habido un error»);
    }

    pageContext.setAttribute(«losEmpleados», datos);

    %>
    <!DOCTYPE html PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
    <html>
    <head>
    <meta http-equiv=»Content-Type» content=»text/html; charset=ISO-8859-1″>
    <title>Insert title here</title>
    <style>
    .cabecera{

    font-weight:bold;
    }

    </style>

    </head>
    <body>

    <table border=»1″>
    <tr class=»cabecera»><td>Nombre</td><td>Apellido</td><td>Puesto</td><td>Salario</td></tr>
    <c:forEach var=»s» items=»${losEmpleados}»>
    <tr>
    <td>${s.nombre}</td><td>${s.apellido}</td><td>${s.puesto}</td><td>${s.salario}</td>
    </tr>
    </c:forEach>
    </table></body>
    </html>

     

     

     

    #6862

    Anónimo
    Inactivo

    Hola que tal.

    que tengo mal en el calculo? por mas que le busco no veo donde. Aparte que de repente me aparece un error «java.lang. arithmetic exception.

     

     

    package practicas_02;

     

    import java.util.Scanner;

     

    public class Nivel_capacitacion {

     

    public static void main(String[] args) {

     

    Scanner teclado = new Scanner(System.in);

     

    int totalPreguntas =20, porcentaje =0, totalCorrectas= 0;

     

     

     

     

    porcentaje = ((totalCorrectas*100)/totalPreguntas);

    // pido datos

     

     

    System.out.print(«Ingrese numero de preguntas correctas: «);

    totalCorrectas = teclado.nextInt();

     

    // realizar condicionales y mostrar sus respectivos resultados

     

     

    if (porcentaje >= 90) {

     

    System.out.print(«\nEsta en nivel maximo»);

     

    } else if (porcentaje >= 75 && porcentaje < 90) {

     

    System.out.print(«\nEsta en nivel medio»);

     

    } else if (porcentaje >= 50 && porcentaje < 75) {

     

    System.out.print(«\nEsta en nivel regular»);

     

    } else if (porcentaje < 50) {

     

    System.out.print(«\nFuera de nivel»);

     

    } else {

    System.out.print(«\nError»);

    }

    }

     

    }

     

    #6863

    Fran
    Participante

    Hola Sergio, yo tambien estoy aprendiendo Java y en tu caso lo he podido ver sin problemas.

    Una de las cosas que he probado es imprimir los valores de los calculos que has hecho para ver si devuelven cero o algún valor.

    Me he dado cuenta al introducir el valor el procentaje siempre devuelve el valor 0

    He modificado tu codigo únicamente cambiando el flujo de ejecución como podrás apreciar. Al tener mal el flujo de ejecución el programa no reconocia la variable porcentaje.

    No copies y pegues directamente ya que las comillas y otros caracteres te pondrá codigo erroneo, solo modificalo  te funcionará. Al menos a mi en las pruebas que hice funciona.

    Un saludo

    package practicas_02;
    import java.util.Scanner;

    public class Nivel_capacitacion {

    public static void main(String[] args) {

    Scanner teclado = new Scanner(System.in);
    int totalPreguntas =20, porcentaje =0, totalCorrectas= 0;

    // pido datos

    System.out.print(«Ingrese numero de preguntas correctas: «);

    totalCorrectas = teclado.nextInt();
    porcentaje = ((totalCorrectas*100)/totalPreguntas);

    System.out.println(porcentaje); // AQUI PUEDES VER SI «PORCENTAJE» IMPRIME ALGUN VALOR O NO

    // realizar condicionales y mostrar sus respectivos resultados

    if (porcentaje >= 90) {

    System.out.print(«Esta en nivel maximo»);

    } else if (porcentaje >= 75 && porcentaje < 90) {

    System.out.print(«Esta en nivel medio»);

    } else if (porcentaje >= 50 && porcentaje < 75) {

    System.out.print(«Esta en nivel regular»);

    } else if (porcentaje < 50) {

    System.out.print(«Fuera de nivel»);

    } else {

    System.out.print(«Error»);

    }

    }

    }

    #6873

    Anónimo
    Inactivo

    no me funciono, pero este problema de logica es de una pagina.

    este es el codigo.

    /////

    import java.util.Scanner;

     

    public class EstructuraCondicionalAnidada5 {

     

    public static void main(String[] args) {

    // TODO Auto-generated method stub

     

    Scanner teclado=new Scanner(System.in);

    int totalPreguntas,totalCorrectas;

     

    System.out.print(«Ingrese la cantidad total de preguntas del examen:»);

    totalPreguntas=teclado.nextInt();

     

    System.out.print(«Ingrese la cantidad total de preguntas contestadas correctamente:»);

    totalCorrectas=teclado.nextInt();

     

    int porcentaje=totalCorrectas * 100 / totalPreguntas;

    if (porcentaje>=90) {

    System.out.print(«Nivel máximo»);

    } else {

    if (porcentaje>=75) {

    System.out.print(«Nivel medio»);

    } else {

    if (porcentaje>=50) {

    System.out.print(«Nivel regular»);

    } else {

    System.out.print(«Fuera de nivel»);

    }

    }

    }

     

    }

     

    }

     

     

     

     

     

    #6874

    Anónimo
    Inactivo

    lo extraño es que ese codigo no me pide inicializar y el otro si. no entiendo la verdad.

    la logica es similar a lo que hice en la clase NIVEL CAPACITACION.

     

     

    #6875

    Fran
    Participante

    Lo que yo corregi a mi si me funcionaba.

    Revisalo bien 😉

     

    #6920

    Anónimo
    Inactivo

    Hola Juan, estoy dando mis primeros pasos en programación y estoy teniendo bastantes dudas.

    Conozco los videos de youtube de java desde 0, pero no me aclaran algunas cosas que vemos en clase o me cuesta ver en qué videos buscarlas, en concreto quería pedirte info ( una descripción concreta entendible para una novata) de dos cosas.

    1 THIS  – para qué se usa this, cuando se usa, qué consigue….

    2 GETTERS Y SETTERS…  Cuando cómo, y si hiciera todo en la misma clase ¿sería necesario usarlos?

    Muchas gracias de antemano, es una labor preciosa crear estos contenidos y ayuda.

     

    #6929

    Mario
    Participante

    Hola Blanch, pues creo que eso de que conoces bien los videos del curso, no lo es tanto, pues si te fijas bien y los sigues, las dos dudas que tienes, estan muy bien explicadas, solo es cuestion de tener paciencia.

    Bueno de mi parte, te indico que las dudas sobre los getters y setters estan solventadas en el video 30 del curso, lo del this está explicado tambien unos videos atrás creo, solo es cuestión de seguir la reproducción.

    #7277

    Hugoa
    Participante

    En el siguiente codigo no me deja ingresar el string en la consola si no que termina el programa.

    package videospruebas;

    import java.util.*;

    public class NewMain {

    public static void main(String[] args) {

    // TODO code application logic here

    Scanner entrada=new Scanner(System.in);

    String opcion;

    int numero;

    int numero2;

    int total=0;

    int adicion;

    do{

    System.out.println(“Ingrese #1”);

    numero=entrada.nextInt();

    System.out.println(“Ingrese #2”);

    numero2=entrada.nextInt();

    adicion=numero+numero2;

    total=total+adicion;

    System.out.println(“Desea agregar otra suma?? si/no”);

    opcion=entrada.nextLine(); //aca esta el problema porque termina el programa en vez de leerme la // variable opcion

    }while(opcion.equalsIgnoreCase(“si”));

    if(opcion.equalsIgnoreCase(“no”)){

    System.out.println(“el resultado de la suma es “+total);

    }

    }

    }

    #7440

    EdgardoG
    Participante

    Hola, acabo de empezar el curso de Java, no se nada de programacion y quiero aprender, los primeros videos me han gustado, pero tengo un problema: AL HACER LOS PRIMEROS EJERCICIOS ME MARCA ERROR, Y LO HAGO TAL Y COMO ESTA EN LOS VIDEOS PERO NO SE SI SEA EL PROGRAMA DESCARGUE ECLIPSE DE 64 BITS POR QUE LA MAQUINA VIRTUAL DE JAVA QUE DESCARGUE TAMBIEN ES DE 64 BITS NO SE SI ESE SEA UN PROBLEMA, VOY A DEJAR LOS ERRORES QUE MARCA PARA EL PRIMER EJERCICIO EL DE «HOLA ALUMNOS».

    Description Resource Path Location Type

    The project cannot be built until build path errors are resolved PrimerosPasos Unknown Java Problem

    Unbound classpath container: ‘JRE System Library [JavaSE-1.7]’ in project ‘PrimerosPasos’ PrimerosPasos Build path Build Path Problem

    DE VERDAD QUIERO SABER QUE ESTA PASANDO, QUIERO APRENDER, AGRADECERE MUCHO SU AYUDA.

    #7443

    Anónimo
    Inactivo

    Hola buenas, voy por el video 44 sobre el polimorfismo. En la clase Uso_Empleados tengo el problema que al ejecutar el programa el Id me lo marca en todos los empleados como 0. No entiendo que pude haber hecho mal, la variable estatica IdSiguiente me la marca como no usada, pero en el constructor lo tengo como Juan, sumando cada vez que se llama al constructor y otra instrucción igualandola a la variable Id. Os paso el codigo por si identificais el problema.

    Gracias por adelantado

    package poo;
    
    import java.util.*;
    
    public class Uso_Empleado {
    
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    
    Jefatura jefe_RRHH=new Jefatura("Víctor", 55000, 2022, 5, 28);
    
    jefe_RRHH.estableceIncentivo(2570);
    
    Empleado[] misEmpleados=new Empleado[6];//se instancian 3 objetos mediante un array
    
    //Aqui se establece los valores de las propiedades de los objetos, propiedades establecidas en el metodo constructor
    
    misEmpleados[0]=new Empleado("Paco Gomez", 85000, 1990, 12, 17);
    
    misEmpleados[1]=new Empleado("Ana Lopez", 95000, 1995, 06, 02);
    
    misEmpleados[2]=new Empleado("MarÌa MartÌn", 105000, 2002, 03, 15);
    
    misEmpleados[3]=new Empleado("Antonio", 30000, 2009, 11, 9);
    
    misEmpleados[4]=jefe_RRHH; //Polimorfismo en acción. Principio de sustitución
    
    misEmpleados[5]=new Jefatura("María", 95000, 1999, 5, 26);
    
    for(Empleado e:misEmpleados){
    
    e.subeSueldo(5);
    
    }
    
    for(Empleado e: misEmpleados){
    
    System.out.println("Nombre: "+ e.dameNombre() + " Sueldo: " + e.dameSueldo()
    + " Fecha de Alta: " + e.dameFechaContrato());
    
    System.out.println();
    
    }
    
    }
    
    }
    
    class Empleado {
    
    public Empleado(String nom, double sue, int agno, int mes, int dia){//metodo constructor se les pasa unos parametros
    
    nombre=nom;
    
    sueldo=sue;
    
    GregorianCalendar calendario=new GregorianCalendar(agno, mes-1, dia);
    
    altaContrato= calendario.getTime();
    
    ++IdSiguiente;
    
    IdSiguiente=Id;
    
    }
    
    public Empleado(String nom){
    
    this(nom, 30000, 2000, 01, 01);
    
    }
    
    public String dameNombre(){ //getter
    
    return nombre + " Id: " + Id;
    
    }
    
    public double dameSueldo(){ //getter
    
    return sueldo;
    
    }
    
    public Date dameFechaContrato(){ //getter
    
    return altaContrato;
    
    }
    
    public void subeSueldo(double porcentaje){ //setter
    
    double aumento=sueldo*porcentaje/100;
    
    sueldo=sueldo+aumento;
    
    }
    
    private String nombre;
    
    private double sueldo;
    
    private Date altaContrato;//Importamos paquete java.util
    
    private static int IdSiguiente;
    
    private int Id;
    
    }
    
    class Jefatura extends Empleado{
    
    public Jefatura(String nom, int sue, int agno, int mes, int dia){
    
    super(nom, sue, agno, mes, dia);
    
    }
    
    public void estableceIncentivo(double b){
    
    incentivo=b;
    
    }
    
    public double dameSueldo(){
    
    double sueldoJefe=super.dameSueldo();
    
    return sueldoJefe + incentivo;
    
    }
    
    private double incentivo;
    
    }
    #7448

    Fernando
    Participante

    Hola Juan, me podrías decir donde esta el error… me sale error apartir del switch.

     

    package primerospasos;

    import javax.swing.*;

    import java.util.*;

    public class areas {

     

    public static void main(String[] args) {

    // TODO Auto-generated method stub

     

    Scanner entrada = new Scanner (System.in);

     

     

    System.out.println(«Eliga una opcion: /n1: Triangulo  /n2: Cuadrado»);

     

    int figura = entrada.nextInt();

     

    Switch  (figura) {

     

    case 1:

     

    int base =Integer.parseInt(JOptionPane.showInputDialog(«introduce el lado» ));

     

    int altura =Integer.parseInt(JOptionPane.showInputDialog(«introduce la altura» ));

     

    System.out.println(«La base del triangulo es» + (base * altura) /2;

     

    break;

     

     

    case 2:

     

    int lado =Integer.parseInt(JOptionPane.showInputDialog(«introduce el lado» ));

     

    System.out.println(«El área del cuadrado es» + Math.pow(lado, 2));

     

    }

    }

    }

     

     

    #7449

    Anónimo
    Inactivo

    Hola Fernando. Prueba a poner «break» despues de:

    System.out.println(“El área del cuadrado es” + Math.pow(lado, 2));

    break;

    default:

    Despues de «default» puedes imprimir que la opción no es correcta:

    System.out.println(«La opción no es correcta»);

     

    Asi cuando introduces un dato que no coincida con ninguno de los «case» del switch(figura), ejecutara el codigo que hayas puesto a continuación de «default»

    #7483

    Lunita
    Participante

    m

    #7484

    Lunita
    Participante

    Hola Juan, he estado siguiendo tu curso de Java y ya voy en la parte de jee  haciendo el CRUD y usando MVC y me surge una duda a raíz de lo q he aprendido y conocimientos previos q tengo en base de datos ; y la duda es que si al realizar una consulta en la que haciendo un inner join yo quiero consultar diferentes datos de dos tablas; el resultset de esa consulta me dará registros de diferentes tablas y mi duda viene al momento de mandar esos datos a la vista, tedria q crear un objeto por cada tabla para que sea accedida desde la vista, pero por mas q busco informacion sobre eso no se como retornar una lista con dos  tipos de objetos que es la forma en q se me ocurre se podría hacer o de qué otra forma se puede hacer. Gracias por tu dedicación

Viendo 15 entradas - de la 76 a la 90 (de un total de 128)
  • Debes estar registrado para responder a este debate.