Ayuda con STRUTS

CHucKY

Estoy realizando prácticas en una empresa que usan STRUTS y la verdad ando algo perdido con esto, debido a no haberlo cursado antes. Debido al gran tamaño del proyecto en el que estoy integrado me pierdo con facilidad y muy rápidamente. Espero que alguien me pudiera ayudar con este tema, ya que no encuentro tutoriales que sean sencillos y fáciles de entender.

Gracias de antemano.

kas

http://es.wikipedia.org/wiki/Apache_Struts

http://struts.apache.org/

http://www.laliluna.de/tutorial-struts-eclipse-espanol.html

Lo siento tio ni papa, mirate esas webs a ver si te ayudan.

Tig

Si especificas un poco más te podré echar una mano. Es una de las tecnologías que usé para mi proyecto fin de carrera.

CHucKY

Queria mas o menos saber el funcionamiento de las clases, etc...como va el programa vamos, su funcionamiento...porque con tanta mierda no me entero...aunque le empiezo a coger algo...Me refiero a como funciona de con los actions, managers, el struts-config...nose..

PD. thx x los manuales

Tig

Pues así tan genérico... te puedo explicar lo que usé yo, que realmente es una parte pequeña de su potencial, creo.

Yo tenía un servidor que atendía peticiones web. Estas peticiones web, en vez de ser gestionadas por un Servlet como se suele hacer, eran gestionadas por las clases Action que implementan la tecnología Struts. Dentro de estas Action llamaba a las clases encargadas de la lógica, en mi caso, gestión de una BBDD, y devolvía una jsp con los resultados que cada petición web hiciera.

Ejemplo:



public class ListDevicesAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws DaoException,NullPointerException{
try{


    List<HouseDevice> deviceList = DaoFactory.getInstance().getHouseDeviceDao().listAllDevices();
    
 
   request.setAttribute("devices", deviceList);
    
    return mapping.findForward("show_results");
}catch(NullPointerException n){
    n.printStackTrace();
}
return null;
}

}
[/i]
Esta clase sirve para listar los dispositivos de mi base de datos. Si te fijas, obtiene la lista de dispositivos, la fija en el ámbito request y forwardea la jsp, que deberá ser la encargada de tratar la información como le de la gana.

Otro aspecto fundamental es el struts-config, que se va a encargar del mapeo petición web-clase Action. En mi caso, aparte de las cosas fijas que hay que poner, esta es la parte que asocia la petición ..../listDevices.do con mi clase listAllDevicesAction



<action path="/listDevices"
type="com.proy.web.ListDevicesAction">
<forward name="show_results" path="/jsp/listDevices.jsp" redirect="false" />
</action>

Si te fijas, le indica al servidor que tiene que devolver la jsp "listDevices.jsp", la encargada de tratar la información obtenida, como ya te he dicho. A mi me interesaba tener esa información en XML, por lo que esta es mi jsp:


<%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %>

<devices>
<logic:iterate name="devices" id="current_device">
<device>
<device-id>< bean:write name="current_device" property="deviceId" /></device-id>
<name>< bean:write name="current_device" property="name" /></name>
<room-location> < bean:write name="current_device" property="roomLocation" /></room-location>
< bean:write name="current_device" property="isAvaliable" /></is-avaliable>
<state>< bean:write name="current_device" property="state" /></state>
</device>
</logic:iterate>

</devices>



Si entiendes mínimamente de jsp, verás que no uso las jstl tags, sino que uso unas que proporciona Struts. Eso realmente es a gusto, pues se puede hacer más o menos lo mismo con ambas. Yo, como no tenía ni idea de ninguna de las dos, pues aprendí con Struts.

Realmente lo que hace una clase Action es generar un Servlet, pero tu eso no lo ves, te limitas a escribir unas pocas líneas de código y y a se encargará el action de los temas de la conexión.

Espero haberte ayudado aunque sea un poco :)

CHucKY

Si gracias, la verdad es que ya lo iva teniendo mas claro. Solo que la primera semana fue muy dura. Gracias

Usuarios habituales

  • CHucKY
  • Tig
  • kas