• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

155
Views
Cómo verificar la disponibilidad del nombre de usuario usando Ajax en Struts 2

Estoy tratando de verificar si el nombre de usuario está disponible o no cuando un usuario intenta crear su cuenta. cuando un usuario escribe su nombre de usuario, debe haber una verificación instantánea de si el nombre de usuario está disponible o no y mostrará un mensaje justo debajo del cuadro de nombre de usuario.

Intenté lograrlo llamando a un Ajax pero no pude entender qué devolver básicamente y cómo funcionará, en realidad soy muy nuevo en Struts 2, puedo verificar el nombre de usuario pero no sabía qué devolver.

Mi llamada Ajax

 <script> $(document).ready(function () { $("input").blur(function () { var input = $(this).val(); alert(input); $.ajax({ url:'checkUsername', method:"POST", data:{username:input}, success:function(data) { if(data!='0'){ $('#availability').html('<span>not available</span>') $('#update').attr("disabled",true); } else{ $('#availability').html('<span>available</span>') $('#update').attr("disabled",false); } } }) }); }); </script>

acción checkUsername

 public String checkUsername() { try { setCtr(admin.checkUsername(username)); if (ctr > 0) { System.out.println(ctr); setNoData(false); } else { setNoData(true); } } catch (Exception e) { e.printStackTrace(); } return "CHECKUSER"; }

método para verificar el nombre de usuario en dao

 public int checkUsername(String username) throws Exception { ResultSet rs = null; Connection con = null; try { con = ConnectionManager.getConnection(); System.out.println(username); String sql = "SELECT * FROM userinfo WHERE username =?"; PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, username); rs = ps.executeQuery(); if (rs.next()) { return 1; } } catch (Exception e) { e.printStackTrace(); } finally { if (con != null) { con.close(); } } return 0; } }

Este método en dao puede verificar el nombre de usuario, pero qué devolver en esos datos ajax que estoy tratando de verificar si las filas> 0 deberían imprimirse no disponibles. ¿Cómo devolver y cómo comprobar?
puntales.xml

 <action name="checkUsername" class="com.redress.actions.AdminAction" method = "checkUsername"> </action>

¿Alguien puede corregirme, cómo lograr esto?

over 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Simplemente devuelva un resultado json . Debe definirlo en la configuración de acción. Ya expliqué cómo puede devolver un resultado json sin struts2-json-plugin . Ahora lo usará para devolver un objeto JSON a la función de devolución de llamada exitosa a través de jQuery ajax.

Primero debe agregarlo a la ruta de compilación del proyecto. Luego haga el paquete de su configuración de acción para extender el paquete json-default . Agregará el tipo de resultado JSON a la configuración de Struts.

Haga que la propiedad noData (lo que sea) a la que desee acceder tenga getter y setter.

Agregue el resultado de tipo JSON a la configuración de la acción.

 <action name="checkUsername" class="com.redress.actions.AdminAction" method get = "checkUsername"> <result type="json"> <param name="root">action</param> </result> </action>

El método de acción debe devolver el código de resultado ActionSupport.SUCCESS .

En la función de devolución de llamada exitosa, debe obtener el objeto JSON que puede verificar

 ActionSupport.Success:function(data){ if(!data.noData){ $('#availability').html('<span>not available</span>'); $('#update').attr("disabled",true); } else{ $('#availability').html('<span>available</span>'); $('#update').attr("disabled",false); } }
over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error