Conexion mysql con Struts2

Buen dia, disculpe alguien podria ayudarme a conectar una base de datos hecha en mysql con el framework strut2...me he basado en tutoriales para comenzar a realizar algunas aplicaciones sencillas...pero el detalle es que cuando llego al momento de la conexion, no logro conseguir realizarlo.....algun tutorial se agradece

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

No tiene nada de especial

Conectarse a un a base de datos es identico hacerlo en cualquier framework (si te conectas directamente por JDBC sin frameworks de persistencia o de conexion).

COn esto ultimo me refiero a que tienes que usar tu tradicional Connection, Statement, ResulSet y jalar tu driver de MySQL (que no es mas que una implementacion de conexion del contrato JDBC para MySQL) con el afamado Class.forName("com.mysql.jdbc.Driver").newInstance(); (con sus respectivos try {} catch([Trhowable] ex) {} para que obtengas una conexion conexion = DriverManager.getConnection("jdbc:mysql:..."); y a partir de la conexion puedas crear tus sentencias statement = conexion.createStatement(); y ahora si a trabajar con Queries resultSet = st.executeQuery("SELECT * FROM cosa WHERE ..."); y de esa forma ya usas crudamente tu resultset para iterarlo y obtener los registros.

  
Pero, y donde entra Struts?
Bueno, la verdad no me agrada mucho la idea de usar una conexion a DDBB de este tipo directamente con un framework (como struts en este caso) porque pierdes una bondad que hace tu OGNL que se encarga de asignar los valores automaticamente para el paso de parametros entre Request/Response (haciendo uso de los Getter/Setters de las propiedades. por lo que tendrias que hacerlo tu a mano. Me explico

  
Resulta que si tienes en Struts (v2) un action con una variable miembro:

private Cosa cosa;

// y tienes los metodos de acceso
public void setCosa ...
public Cosa getCosa...

y suponiendo que la clase Cosa sea esta:

public class COsa{
    private string
            nombre,
            correo,
            algo;
   
    private int
            edad,
            otroDato;

    // agregar metodos de acceso Get/Set
}

para usar la bondad del OGNL y en tu JSP presentar el campo nombre solo harias:

<s:property value="cosa.nombre" />

porque struts pone automaticamente los parametros enviados en un valueStack y <s:property  />se encarge de ir a recoger ese valor. Por lo que, en el ejemplo de obtener informacion desde MySQL que puse arriba pues tienes que llenar tu objeto de manera manual para que puedas usar esta caracteristica de Struts. Es decir que recorres tu ResultSet y llenas tu objeto Cosa para establecerlo en el action.

  
Entiendo que esto podria ser una practrica escolar y sin embargo no dejes de usar DAO para la consulta de datos (no lo metas dentro del action), en el action harias this.cosa = cosaDao.select([nombre = "pepito"]);

Gracias, Ayuda con tiles

Gracias por tomarse el tiempo y brindarme una solucion.

Seguimos en struts2

Buen dia, antes que nada gracias por darme la salucion a mis dudas.

De nuevo con ustedes, con una duda, esta ocacion se trata de los tiles..

A continuacion tratare de describir el problema, como sabeis estoy trabajando con struts2, realizando un pequeño sistema, en el cual se logea y compara con bd, tengo dos usuarios, administrador e investigador..Todo bien, cuando me logeo como invesstigador realizo las operaciones correspondientes, el problema surge que cuando me logeo como administrador..entra bien, muestra el menu principal, el problema biene a raiz de que pincho al ulgun vinculo. mas bien el vinculo Documentos y me envia este pequeño error:

type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

javax.servlet.ServletException: java.lang.IllegalArgumentException: La Trayectoria gerci.administrador.{2} no comienza con carácter "/"
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
mx.inaoe.gerci.servlet.GerciServlet.service(GerciServlet.java:51)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

causa raíz

java.lang.IllegalArgumentException: La Trayectoria gerci.administrador.{2} no comienza con carácter "/"
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:107)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
mx.inaoe.gerci.servlet.GerciServlet.service(GerciServlet.java:51)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

nota La traza completa de la causa de este error se encuentra en los archivos de diario de JBoss Web/2.1.2.GA.
JBoss Web/2.1.2.GA

Imagen de ingscjoshua

hay que revisar tu configuracion

Hola podrias ser mas explicito para poder ayudarte podrias postear tus archivos de configuracion para poder revisar donde esta el error ese error generalmente sucede cuando no coninciden los nombres o dejas espacios en blanco revisa