jueves, 16 de abril de 2009

Día 53: EJB y JSF (11ªP) / JBoss-Seam (4ºP)

Cambio de JBoss 5.0 Server a JBoss 4.2 Server

Al comenzar el día lo primero que hicimos fue cambiar la versión del servidor JBoss ya que la versión 5 que hemos estado utilizando presenta muchos fallos y mucho coñazo a la hora de los errores y de intentar arreglarlos.
Para cambiarnos de servidor con el proyecto que estamos usando ("seamcea") lo copiamos a JAVA/servers (que lo pusimos en el escritorio) y en el eclipse creamos un nuevo servidor desde la pestaña de servidores, se selecciona el directorio y lo reconocerá, también habrá que añadirle el proyecto y lo más importante el archivo .xml que es el datasource.
Con el servidor bien puesto ya solo hace falta configurar el proyecto al servidor para ello botón secundario encima del proyecto principal, propiedades y "Targeted Runtime" y marcaremos la versión del nuevo jboss.

Un modelo se carga a traves de acciones.
Una acción la llamamos de 2 maneras, desde el pages.xml que se llamara la accion cada vez que recargemos la pagina y a traves de un s:link que es solo 1 vez.
En el pages.xml podemos tener una condicion para limitar la carga.
La vida (SCOPE) de un modelo:
  • Por ahora usamos la vida de sesion.
  • Tambien existe de por conversacion o tarea del usuario.
    Si por ejemplo pulsamos en un enlace para editar algo es una tarea y se guarda ahi. La ventaja seria tener varias ventanas y cada ventana una tarea y varias tareas a la vez. Otra ventaja es la limpieza, que una vez terminemos con nuestra "conversacion", nuestra tarea, llamamos al método con la anotación @End y todo lo que conlleve la conversación se limpiará, se quedará a nulo.
    Tampoco hay que olvidarse de poner una etiqueta (Anotacion) nueva @Begin en el/los método/s principal/es (el de cargar o buscar algo), solo funcionara si es de tipo conversación. Después del @Begin hay que añadir un "join=false" si no queremos que las conversaciones se pisen (que abramos una segunda ventana para editar un segundo disco y cuando editamos el primero, éste pise al segundo.)
    La etiqueta @End se pondran en el/los metodo/s que termine/n la conversación/es.


Ejercicio:
Cambiar el scope del ejercicio de ayer de sesion a conversación y probar si funciona y añadir el @Begin con el join.

Para validar un calendario
rich:calendar value=... validator="#{bean.valida}"

@Name("bean")
public class MiBean{
public void valida(FacesContext fc, UIComponent ucom,Object o) throws exception{
Date fechaSel=(Date) o;
if(fechaSel) throw Excetion();
}
}


Para validar un input text cerramos la etiqueta a parte y como cuerpo le ponemos una etiqueta del tipo f:validate


No hay comentarios:

Publicar un comentario