| |||
ARCHIVO .do Hola amigos :Quisiera saber como debo crear un archivo con extensión .do para poder invocarlo como una url desde la web (http://localhost:8080.xxx.do) agradezco la ayuda. |
| |||
un archivo *.do es un action, clase q hereda de struts.action. Para ello debes configurar el struts-config.xml para decirle al dispatcher que acciodes debe ejecutar para q dependiendo del action redirija a otro action o jsp saludos |
| ||||
Hola, asi es sanmi69, la extension .do es generalmente usada en acciones de struts, pero también puede ser utilizada como mapping de un servlet sin necesidad de trabajar con struts, es decir si tuvieras en tu web.xml lo siguiente: Código PHP: http://localhost:8080/webApp/ejecuta.do Donde webApp es el nombre de tu webapplication y ejecuta.do es el mapping de tu servlet.
__________________ Saludos, H@C.. |
| |||
Gracias amigos por la respuesta, de todas maneras como necesito crear un archivo .do quisiera que me enviaran un ejemplo de un archivo struts-config.xml donde contenga este archivo y de que forma me comunico con el dispatcher. Saludos |
| |||
como ha dixo hugo77 el .do sale gracias al url-pattern del web.xml, pero se usa principalemte para struts, y el struts-config.xml es el archivo q lee el dispatcher para realizaar los redirecccionamientos. aki va un struts-config.xml de ejemplo Código PHP: |
| ||||
hola!!! como puedo insertar datos en un BD con JDBC a traves de una aplicacion web con struts? o donde puedo encontrar informacion muchas gracias
__________________ Fidel [email protected]------------------------------------------------ "LA PROVIDENCIA AYUDA A AQUIENES AYUDAN A LOS DEMAS" |
| |||
Hola como te va? Bueno tu pregunta produce una respues larga, lo que tienes que saber basicamente es lo siguiente, en struts para acceder a una BD se debe configurar algo llamado datasource esto se declara en el struts-config.xml de la siguiente manera: <data-source key="KEY_EJEMPLO" type="CLASS DEL DRIVER"> <set-property property="URL" value="STRIN DE CONEXION O URL" /> <set-property property="user" value="USERID" /> <set-property property="password" value="PASS" /> <set-property property="maxActive" value="3" /> <set-property property="maxWait" value="5000" /> <set-property property="defaultAutoCommit" value="false" /> </data-source> Si ya tienes configurado eso entonces cuando se genere un action puede consultar la bd de datos, lo que yo hago es crear un bean con todos los campos de la tabla llamada generalmente VO, una clase para acceder a los datos (modelo del negocio donde se hacen las sentencia sql) llamada generalmente DAO, y la clase action que la desciendo de dispatchaction...es la misma que action solo que con esta puedes tener varios metodos execute desde una sola clase. ej: del dispatch action Esta clase es la que recibe el action desde la pagina jsp, de aca entonces lo que hago dependiendo del metodo es llamar a add si se va a insertar, a upd si va a actualizar, a load para cargar un registro especifico, entonces explico el add que fue el unico que coloque, entonces nos llega el ActionForm, de alli sacamos los datos que vienen de los formularios luego de eso conseguimos el datasource que se declaro en el strut-config, hay dice ds = getActiveDataSource(request) eso es una funcion como la siguiente: public DataSource getActiveDataSource(HttpServletRequest request) throws Exception { DataSource ds = null; String datasourcekey; datasourcekey = (String) request.getSession().getAttribute("KEY_EJEMPLO"); ds = this.getDataSource(request, datasourcekey); return ds; } fijate hay en el "KEY_EJEMPLO" con ese key fue que se declaro en el struts-config, luego de eso entonces llamamos a la sentencia sql ya que tenemos el datasource y el VO....entonces mira la clase DAO y VO import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; import com.union.common.ApplicationLog; import com.union.common.GenericaDispatchAction; public class IdiomaDispatchAction extends GenericaDispatchAction { private static final String FWD_FORMULARIO = "formulario"; private static final String FWD_EXITOSO = "exitoso"; private static final String FWD_REINTENTAR = "error"; public ActionForward add( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) throws ServletException { DynaActionForm f; DataSource ds; IdiomaVO vo; initLog( ); f = (DynaActionForm) form; vo = new IdiomaVO( ); vo.setIdioma( (String) f.get( "idioma" ) ); vo.setNombre( (String) f.get( "nombre" ) ); try { ds = getActiveDataSource( request ); } catch( Exception e ) { log.addError( e.getMessage( ) ); saveLog( request ); return mapping.findForward( IdiomaDispatchAction.FWD_REINTENTAR ); } try { if( !IdiomaDAO.addIdioma( vo, ds ) ) { System.out.println( "ErrorGeneral" ); log.addError( "error.general" ); saveLog( request ); return mapping.findForward( IdiomaDispatchAction.FWD_REINTENTAR ); } } catch( SQLException sqlx ) { log.addDatabaseError( sqlx ); log.addDatabaseUserError( sqlx, ds ); saveLog( request ); return mapping.findForward( IdiomaDispatchAction.FWD_REINTENTAR ); } log.addMessage( "mensaje.registro.XXzado", "Idioma", 1 ); saveLog( request ); return mapping.findForward( IdiomaDispatchAction.FWD_EXITOSO ); } public ActionForward upd( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) throws ServletException { } public ActionForward load( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) throws ServletException { } public ActionForward preload( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) throws Exception, ServletException { } } ej del VO: public class IdiomaVO implements Serializable { private String idioma; private String nombre; /** * @return Returns the idioma. */ public String getIdioma( ) { return idioma; } /** * @param idioma The idioma to set. */ public void setIdioma( String idioma ) { this.idioma = toUpperCase(idioma); } /** * @return Returns the nombre. */ public String getNombre( ) { return nombre; } /** * @param nombre The nombre to set. */ public void setNombre( String nombre ) { this.nombre = toUpperCase(nombre); } private String toUpperCase(String str) { if (str != null) return str.toUpperCase(); else return str; } } ej del dao: import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.LinkedList; import javax.sql.DataSource; import com.union.common.GenericoDAO; public class IdiomaDAO { public static boolean addIdioma( IdiomaVO vo, DataSource ds ) throws SQLException { Connection conn = null; StringBuffer sql; boolean ok = false; conn = ds.getConnection( ); sql = new StringBuffer( "INSERT INTO idioma_idi (cidi_idioma, cidi_nombre )" ); sql.append( " VALUES ( " ); sql.append( GenericoDAO.toSQL( vo.getIdioma( ), true ) + ", " ); sql.append( GenericoDAO.toSQL( vo.getNombre( ), true ) + ")" ); ok = GenericoDAO.execute( sql.toString( ), conn ); return ok; } } --ACA continuamos entonces llamado a la clase addIdioma le pasamos el vo con los datos recuperados, el datasource recuperado, creamos la sentencia sql y recuperamos una conexion como conn = ds.getConnection() y listo...ya puedes hacer lo que quieras con las bases de datos, en esa clase dao tambien puedes declarar otros metodos como el de actualizar, el de eliminar...etc. Aca te envio como se configura el action y el formbean de idioma por si lo necesitas. EL FORM BEAN <form-bean dynamic="true" name="idioma" type="org.apache.struts.action.DynaActionForm"> <form-property name="idioma" type="java.lang.String"/> <form-property name="nombre" type="java.lang.String"/> <form-property name="mtd" type="java.lang.String" /> </form-bean> y el action <action path="/parametrohov/idioma" name="idioma" scope="request" type="com.union.sara.parametrohov.IdiomaDispatchAc tion" parameter="mtd" validate="false"> <forward name="formulario" path="/pages/modulos/parametrohov/idiomaAdm.jsp" /> <forward name="exitoso" path="/parametrohov/listado.do?mtd=idi" /> <forward name="error" path="/pages/modulos/parametrohov/idiomaAdm.jsp" /> </action> Hasta Pronto y espeor que le sirva de algo. Daniel..de Colombia. |
| ||||
si muchas gracias, eres lo maximo, fracias por tu tiempo.
__________________ Fidel [email protected]------------------------------------------------ "LA PROVIDENCIA AYUDA A AQUIENES AYUDAN A LOS DEMAS" |