SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
UDA – Utilidades de desarrollo de aplicaciones by EJIE is licensed under a Creative Commons Reconocimiento-
NoComercial-CompartirIgual 3.0 Unported License.
UDA - Utilidades de Desarrollo de Aplicaciones
Componentes RUP – Formulario
Fecha: 22/11/2013 Referencia:
EJIE S.A.
Mediterráneo, 14
Tel. 945 01 73 00*
Fax. 945 01 73 01
01010 Vitoria-Gasteiz
Posta-kutxatila / Apartado: 809
01080 Vitoria-Gasteiz
www.ejie.es
Componentes RUP – Formulario ii/14
Control de documentación
Título de documento: Componentes RUP – Formulario
Histórico de versiones
Código: Versión: Fecha: Resumen de cambios:
2.0.0 11/07/2012 Primera versión.
2.1.0 18/09/2012
Actualización de las versiones de las librerías
JavaScript subyacentes.
Añadido del apartado referente a la emulación de
peticiones XHR mediante el uso de iframes
2.1.1 09/01/2013
Añadidos nuevos métodos públicos: ajaxSubmit,
formToJson.
Añadida una nueva propiedad de configuración del
componente: useJsonIfPossible
2.4.0 22/11/2013
Se distribuye la versión minimizada de los ficheros
javascript y de estilos de RUP.
Cambios producidos desde la última versión
Se distribuye la versión minimizada de los ficheros javascript y de estilos de RUP.
Control de difusión
Responsable: Ander Martínez
Aprobado por:
Firma: Fecha:
Distribución:
Referencias de archivo
Autor:
Nombre archivo:
Componentes RUP – Formulario iii/14
Localización:
Contenido
Capítulo/sección Página
1. Introducción 4
2. Ejemplo 4
3. Casos de uso 4
4. Infraestructura 5
4.1. Ficheros 5
4.2. Dependencias 5
5. Invocación 6
6. Parámetros 7
7. Funciones 8
8. Sobreescritura del theme 9
9. Integración con UDA 9
9.1. Envío y recepción de datos 9
9.2. Envío de múltiples entidades 9
9.3. Subida de ficheros 12
10. Interacción con otros componentes RUP 14
Componentes RUP – Formulario 4/14
1. Introducción
La descripción del Componente Formulario, visto desde el punto de vista de RUP, es la siguiente:
Permite al usuario introducir datos en una serie de campos para ser enviados al servidor y ser
procesados.
2. Ejemplo
Se presenta a continuación un ejemplo de este componente:
3. Casos de uso
Se aconseja la utilización de este componente:
• Cuando sea necesario enviar formularios vía AJAX.
Componentes RUP – Formulario 5/14
4. Infraestructura
A continuación se comenta la infraestructura necesaria para el correcto funcionamiento del componente.
• Únicamente se requiere la inclusión de los ficheros que implementan el componente (js y css)
comentados en los apartados Ficheros y Dependencias.
4.1. Ficheros
Ruta Javascript: rup/scripts/
Fichero de plugin: rup.form-x.y.z.js
Ruta theme: rup/basic-theme/
Fichero CSS del theme: theme.rup.form-x.y.z.css
4.2. Dependencias
Por la naturaleza de desarrollo de los componentes (patrones) como plugins basados en la librería
JavaScript jQuery, es necesaria la inclusión del esta. La versión elegida para el desarrollo ha sido la
versión 1.8.0.
• jQuery 1.8.0: http://jquery.com/
La gestión de la ciertas partes visuales de los componentes, se han realizado mediante el plugin jQuery
UI que se basa en jQuery y se utiliza para construir aplicaciones web altamente interactivas. Este plugin,
proporciona abstracciones de bajo nivel de interacción y animación, efectos avanzados de alto nivel,
componentes personalizables (estilos) ente otros. La versión utilizada en el desarrollo ha sido la 1.8.23.
• jQuery UI 1.8.23: http://jqueryui.com/
Las distintas funcionalidades que aporta el componente y las prestaciones generales del mismo, se
apoyan en el plugin jQuery File Upload. Para el correcto funcionamiento del componente Upload, se
precisa de la inclusión de dicho plugin.
• jQuery-File-Upload: http://blueimp.github.com/jQuery-File-Upload/
Los ficheros necesarios para el correcto funcionamiento del componente son:
• jquery-1.8.0.js
• jquery-ui-1.8.23.custom.js
• jquery-ui-1.8.23.custom.css
• jquery.form.js
• rup.form-x.y.z.js
Componentes RUP – Formulario 6/14
4.3. Versión minimizada
A partir de la versión v2.4.0 se distribuye la versión minimizada de los componentes RUP. Estos ficheros
contienen la versión compactada y minimizada de los ficheros javascript y de estilos necesarios para el
uso de todos los compontente RUP.
Los ficheros minimizados de RUP son los siguientes:
• rup/scripts/min/rup.min-x.y.z.js
• rup/basic-theme/rup.min-x.y.z.css
Estos ficheros son los que deben utilizarse por las aplicaciones. Las versiones individuales de cada uno
de los componentes solo deberán de emplearse en tareas de desarrollo o depuración.
5. Invocación
El componente formulario se invoca sobre un formulario html existente en la jsp. El formulario contendrá los
campos que se desean enviar.
Un ejemplo de un formulario que se desee enviar es el siguiente:
<form id="formulario" action="/form">
<label for="nombre">Nombre</label>
<input type="text" name="nombre" id="nombre" />
<label for="apellido1" >Primer apellido</label>
<input type="text" name="apellido1" id="apellido1" />
<label for="apellido2" >Segundo apellido</label>
<input type="text" name="apellido2" id="apellido2" />
</form>
En este caso el formulario dispone de tres campos que serán enviados al servidor. Para realizar la
invocación del componente formulario realizaremos lo siguiente:
var properties={
// Propiedades de configuración
};
$("#formulario").rup_form(properties);
Como ya se profundizará mas adelante, mediante las propiedades indicadas en la invocación del
componente, se realiza la configuración del mismo.
Componentes RUP – Formulario 7/14
6. Parámetros
A continuación se muestran los posibles parámetros de configuración que recibe el componente.
• beforeSerialize: Función de callback que será invocada antes de realizarse la serialización del
formulario. Permite la modificación de los datos del formulario antes de que estos sean recuperados
para su procesado por el componente. Valor por defecto, null.
• beforeSubmit: Función de callback que será invocada antes de realizarse el envío del formulario.
Permite acceder a la información que será enviada al formulario. En caso de retornar false no se
realizará en envío. Valor por defecto, null.
• clearForm: Propiedad booleana que determina si el formulario debe de limpiarse después de
realizar el envío.
• data: Mediante esta propiedad es posible especificar parámetros extra que sean enviados al
servidor.
• dataType: Tipo de datos esperados en la respuesta. Los valores posibles son null, xml, json y script.
Valor por defecto null.
• error: Función de callback que será invocada cuando se produzca un error.
• forceSync: Propiedad booleana. En caso de ser true elimina la corta espera que se produce antes
de enviar el formulario cuando se envían ficheros o se utiliza la opción de iframe. La espera se utiliza
para permitir al navegador actualizar modificaciones realizadas en el DOM antes de que se realice el
envío de los datos. Por defecto a false.
• iframe: Determina si el formulario debe de ser enviado siempre mediante un iframe. Por defecto a
false.
• iframeSrc: Propiedad de texto que deberá ser utlizada siempre en conjunción con la propiedad
iframe. Por defecto, about:blank. Por defecto para páginas que utlicen el protocolo https, javascript:false.
• iframeTarget: Identifica el iframe que será utilizado como target en la respuesta en los envíos de
ficheros. Por defecto, el componente creará un iframe temporal para capturar la respuesta del envío de
ficheros. Valor por defecto, null.
• multimodel: Permite especificar la configuración que se deberá de aplicar a la hora de realizar el
envío de varias entidades en la misma petición. La configuración de este parámetro se detalla en el
apartado 9.2. Valor por defecto, false.
• replaceTarget: Opcionalmente se utililiza junto con la opción target. En caso de ser true el elemento
identificado en la opción target será reemplazado. En caso de ser false solo su contenido será
reemplazado. Valor por defecto, false.
• resetForm: Propiedad booleana que determina si el formulario debe ser inicializado al realizarse el
envío del mismo. Por defecto, false.
• semantic: Propiedad booleana que determina si los campos del formulario deben ser enviado en
estricto orden semántico. Por defecto la serialización normal del formulario se realiza en orden
semántico exceptuando los campos img. Valor por defencto, false.
• success: Método callback que será invocado cuando se reciba la respuesta del formulario.
• target: Identifica los elementos de la página que deberán ser actualizados con la respuesta del
servidor. El target puede ser indicado mediante un selector de jQuery, un objeto de jQuery o un objeto
DOM.
Componentes RUP – Formulario 8/14
• type: Detemina el método con el que se enviará el formulario, GET o POST. Por defecto el valor de
la propiedad method indicada en el formulario o GET en caso de no encontrarse.
• uploadProgress: Método que será invocado con información de progreso del envío del formulario
(en caso de estar soportado por el navegador).
• url: URL a la cual se realizará en envío del formulario. Por defecto el valor indicado en la propiedad
action del formulario.
• useJsonIfPossible: Mediante este parámetro se especifica al componente que debe de utilizar el
formato application/json como prioridad (siempre que sea posible) al realizar el envío del formulario.
Valor por defecto, true.
Junto con las propiedades de configuración del componente es posible especificar propiedades
de configuración para el método $.ajax de jQuery que será utilizado para el envío de los datos del
formulario.
7. Funciones
A continuación se detallan las diferentes funciones que integran el componente validación:
• ajaxForm: Configura un formulario para ser enviado vía AJAX. Para ello añade los event listener
jQuery que sean necesarios. Este método no realiza el envío del formulario. Esta función puede ser
invocada sin parámetros o con un simple parámetro que puede ser o una función de callback o un
objeto con las propiedades de configuración.
• ajaxSubmit: Realiza el envío del formulario. La configuración de este método es la misma que la de
ajaxForm.
• ajaxFormSubmit: Realiza la misma función que ajaxSubmit. Se mantiene para asegurar la
retrocompatibilidad con versiones anteriores.
• formSerialize: Serializa el contenido del formulario en un query string. Este método retorna una
cadena de texto con el formato nombre1=valor1&nombre2=valor2.
• fieldSerialize: Realiza la serialización de campos del formulario en un query string. Retorna una
cadena de texto con el formato nombre1=valor1&nombre2=valor2.
• formToJson: Realiza la serialización de campos del formulario en un objeto json. Retorna un objeto
con el formato {nombre1:valor1, nombre2:valor2…nombreN:valorN}.
• fieldValue: Devuelve un array con el valor de los campos indicados. La función siempre devuelve un
array.
• resetForm: Inicializa el formulario con su estado inicial invocando al método reset nativo.
• clearForm: Limpia los elementos del formulario.
Componentes RUP – Formulario 9/14
• clearFields: Limpia los campos especificados mediante el selector de jQuery.
8. Sobreescritura del theme
No aplica.
9. Integración con UDA
En este apartado se va a explicar las diferentes interacciones que realiza el componente con el resto de
subsistemas definidos en UDA.
9.1. Envío y recepción de datos
El componente formulario realiza, por defecto, el envío de los datos en formato application/json, excepto en
los casos en los que se ha especificado otro formato de envío o cuando se debe realizar envío de un fichero.
El envío de ficheros se detallará en un apartado posterior.
Una vez explicado este punto, se presentan dos escenarios al realizar el envío del formulario:
• El contenido del formulario se envía en formato application/json. En este caso el data binding de
estos datos se realiza sobre el parámetro del controller anotado mediante @RequestBody. El
proceso de data binding del formulario enviado en formato application/json se realiza mediante el
componente Jackson JSON Processor. El uso y configuración del mismo se detalla en el documento
correspondiente.
El método del controller encargado de recoger los datos se declarará del siguiente modo:
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody Alumno add(@RequestBody Alumno alumno){
}
• El contenido del formulario se envía en formato un formato diferente al application/json, por ejemplo
en multipart/form-data o application/x-www-form-urlencoded. En este caso el data binding de estos
datos se realiza sobre el parámetro del controller anotado mediante @ModelAttribute.
El método del controller encargado de recoger los datos se declarará del siguiente modo:
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody Alumno edit(@ModelAttribute Alumno alumno){
}
9.2. Envío de múltiples entidades
El componente formulario permite, junto con el uso del componente Jackson, el envío y recepción de datos
de múltiples entidades dentro de la misma petición.
Componentes RUP – Formulario 10/14
Supongamos que se debe de enviar desde la capa de presentación cierta información introducida por el
usuario. El databinding de estos datos debe de ser realizado sobre dos beans entre los cuales no existe
anidamiento:
public class Alumno implements java.io.Serializable {
private BidDecimal id;
private String nombre;
private String apellido1;
private String apellido2;
// Getters y setters de las propiedades
}
public class Departamento implements java.io.Serializable {
private BidDecimal id;
private String descEs;
private String descEu;
// Getters y setters de las propiedades
}
Para evitar la creación de un nuevo tipo de bean cada vez que se da esta necesidad se ha implementado
una nueva funcionalidad de Jackson. Esta funcionalidad es proporcionada por el UdaModule y permite
realizar el databinding de varias entidades sobre un parámetro del método de tipo HashMap.
Para poder determinar en cada petición si se va a utilizar o no el databinding múltiple, se incluye una
cabecera en la petición, RUP_MULTI_ENTITY. En caso de ser true se activará el comportamiento especial.
Este sería el proceso completo de databinding múltiple:
1. Partimos de un formulario definido en la jsp en el que se dispone de varios campos
correspondientes a varias entidades:
<form id="formMultientidades" action='/multientidades' method="post">
<input type="text" name="alumno.id" />
<input type="text" name="alumno.nombre" />
<input type="text" name="alumno.apellido1" />
<input type="text" name="alumno.apellido2" />
<input type="text" name="departamento.id" />
<input type="text" name="departamento.descEs" />
<input type="text" name="departamento.descEu" />
<input type="submit" value="Enviar" />
</form>
2. Se invoca al componente RUP formulario. En la configuración se especifica la información necesaria
para realizar el data binding múltiple:
$("#formMultientidades").rup_form({
feedback:$("#feedbackMensajes"),
multimodel:{
"alumno":"com.ejie.x21a.model.Alumno",
"departamento":"com.ejie.x21a.model.Departamento"
},
success:function(xhr){
// Tratamiento de la petición realizada correctamente
},
validate:{
Componentes RUP – Formulario 11/14
rules:{
// Reglas de validación necesarias
}
}
});
En la propiedad multimodel se especifica la correlación entre las nombres de las propiedades y de
los objetos Java.
La petición resultante tiene el siguiente aspecto:
Content-Type application/json; charset=UTF-8
RUP_MULTI_ENTITY true
{
"alumno":
{"id":"1","nombre":"Nom","apellido1":"ap1","apellido2":"ap2"},
"departamento":
{"id":"3","descEs":"Dep_es","descEu":"Dep_eu"},
"rupEntityMapping":{
"alumno":"com.ejie.x21a.model.Alumno",
"departamento":"com.ejie.x21a.model.Departamento"
}
}
En el objeto json se envía la siguiente información:
• Los datos correspondientes a cada una de las entidades sobre las que se debe realizar el
databinding en formato json.
• Un objeto de nombre rupEntityMapping que contiene la correlación entre los nombres de los
objetos y el tipo Java.
3. La petición se mapea sobre el método del controller correspondiente. El tipo de parámetro del
parámetro sobre el que se van a crear las nuevas entidades debe ser de tipo java.util.Map:
@RequestMapping(value = "form/multientidades", method = RequestMethod.POST)
public @ResponseBody Object getFormmMultientidades(@RequestBody Map<String, Object>
multiModelMap) {
// Obtención del alumno
Alumno alumno = (Alumno)multiModelMap.get("alumno");
// Obtención del departamento
Departamento departamento =
(Departamento)multiModelMap.get("departamento");
}
El key de cada uno de los elementos del mapa y el tipo de objeto que se crea en dicho elemento se
corresponde con la configuración indicada en el objeto json rupEntityMapping.
El componente permite también en envío de múltiples entidades del mismo tipo. Las diferentes entidades se
diferenciarían mediante el nombre del parámetro:
<form id="formMultientidades" action='/multientidades' method="post">
<input type="text" name="comarca1.code" />
<input type="text" name="comarca1.descEs" />
Componentes RUP – Formulario 12/14
<input type="text" name="comarca1.descEu" />
<input type="text" name="comarca2.code" />
<input type="text" name="comarca2.descEs" />
<input type="text" name="comarca2.descEu" />
<input type="text" name="comarca3.code" />
<input type="text" name="comarca3.descEs" />
<input type="text" name="comarca3.descEu" />
<input type="submit" value="Enviar" />
</form>
La invocación y la configuración del componente formulario sería la siguiente:
$("#formMultientidades").rup_form({
feedback:$("#feedbackMensajes"),
multimodel:{
"comarca1":"com.ejie.x21a.model.Comarca",
"comarca2":"com.ejie.x21a.model.Comarca",
"comarca3":"com.ejie.x21a.model.Comarca"
},
success:function(xhr){
// Tratamiento de la petición realizada correctamente
},
validate:{
rules:{
// Reglas de validación necesarias
}
}
});
Por su parte, el método del controller encargado de la recepción de las entidades sería el siguiente:
@RequestMapping(value = "/multientidades", method = RequestMethod.POST)
public @ResponseBody Object getFormmMultientidades(@RequestBody Map<String, Object>
multiModelMap) {
// Obtención de la entidad comarca1
Comarca comarca1 = (Comarca)multiModelMap.get("comarca1");
// Obtención de la entidad comarca2
Comarca comarca2 = (Comarca)multiModelMap.get("comarca2");
// Obtención de la entidad comarca3
Comarca comarca3 = (Comarca)multiModelMap.get("comarca3");
}
9.3. Subida de ficheros
Para realizar la subida de ficheros basta con incorporar un campo file al formulario que se va a enviar. El
componente formulario detecta que debe de gestionar la subida de un fichero y actúa en consecuencia.
La principal diferencia respecto al envío de una petición normal es que se realiza mediante una
multipart/form-data en lugar de una application/x-www-form-urlencoded.
Para llevar a cabo el envío de ficheros mediante el componente form se deben llevar a cabo los siguientes
pasos:
1. Habilitar el soporte de Spring para peticiones multipart. Por defecto Spring no tiene habilitada la
gestión de subidas de ficheros (multipart).
Componentes RUP – Formulario 13/14
Para habilitarlo se debe de añadir un MultipartResolver al contexto de aplicación de Spring. Esto se
realiza editando la configuración del fichero mvc.config.xml e incluyendo la siguiente definición:
<bean id="multipartResolver" class="com.ejie.x38.util.UdaMultipartResolver" >
</bean>
Desde UDA se proporciona un MultipartResolver que permite el envío de peticiones multipart
mediante PUT.
2. Crear un formulario con un campo file mediante el cual se seleccionará el fichero a enviar:
<form id="formFichero" action='/subidaFichero' method="post">
...
...
<input type="file" id="campoFichero" name="fichero" />
...
...
<input type="submit" value="Enviar" />
</form>
3. Invocación del componente formulario.
$("#formFichero").rup_form({
// Obtención de la entidad comarca1
});
4. Para obtener en el controller el fichero enviado se deberá de definir un parámetro del siguiente
modo. El parámetro se muestra resaltado en el ejemplo:
@RequestMapping(value="/subidaFichero", method = RequestMethod.POST)
public void subirFichero(
@ModelAttribute Alumno alumno,
@RequestParam(value="fichero", required=false) MultipartFile fichero) {
// Procesado del fichero
}
IMPORTANTE: En el caso de utilizar el navegador Internet Explorer 8, la subida de ficheros mediante
un formulario se realiza mediante el uso de iframe. Esto es debido a que la subida de ficheros
mediante peticiones AJAX no está soportada en este navegador.
La configuración que se ha de realizar para permitir la interacción correcta entre los iframes y el
resto de la infraestructura (request mappings, http error code, validaciones…) se detalla en el anexo
Anexo-Emulacion_xhr_iframes.doc
Componentes RUP – Formulario 14/14
10. Interacción con otros componentes RUP
Para facilitar la gestión de los formularios de la aplicación, se ha tratado de facilitar la validación de los
campos del formulario. Para ello se ha integrado en el componente formulario el uso del componente
validación.
La configuración de las validaciones que se deben de aplicar a los campos del formulario se realiza del
mismo modo que se describe en el documento de uso del componente validación. Las opciones de
configuración del componente validación se indican en la propiedad validate del las opciones de
configuración del componente formulario.
A continuación se muestra un ejemplo de una invocación del componente formulario en el que se incluye la
configuración correspondiente a la validación de sus campos:
$("#formulario").rup_form({
url:"/formulario/guardar",
success: function(){
},
validate:{
rules:{
"nombre":{required:true},
"apellido1":{required:true}
}
}
});
La configuración referente al proceso de validación se detalla en la guía de uso del componente RUP
validación.

Más contenido relacionado

La actualidad más candente

UDA-Componentes RUP. Botonera
UDA-Componentes RUP. BotoneraUDA-Componentes RUP. Botonera
UDA-Componentes RUP. BotoneraAnder Martinez
 
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)Ander Martinez
 
UDA-Componentes RUP. Feedback
UDA-Componentes RUP. FeedbackUDA-Componentes RUP. Feedback
UDA-Componentes RUP. FeedbackAnder Martinez
 
UDA-Componentes RUP. Accordion
UDA-Componentes RUP. AccordionUDA-Componentes RUP. Accordion
UDA-Componentes RUP. AccordionAnder Martinez
 
UDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingUDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingAnder Martinez
 
UDA-Componentes RUP. Tabla.v2.4.6
UDA-Componentes RUP. Tabla.v2.4.6UDA-Componentes RUP. Tabla.v2.4.6
UDA-Componentes RUP. Tabla.v2.4.6Ander Martinez
 
UDA-Componentes RUP. Fecha
UDA-Componentes RUP. FechaUDA-Componentes RUP. Fecha
UDA-Componentes RUP. FechaAnder Martinez
 
UDA-Guia de desarrollo
UDA-Guia de desarrolloUDA-Guia de desarrollo
UDA-Guia de desarrolloAnder Martinez
 
UDA-Componentes RUP. Upload
UDA-Componentes RUP. UploadUDA-Componentes RUP. Upload
UDA-Componentes RUP. UploadAnder Martinez
 
UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.Ander Martinez
 
UDA-Desarrollo RUP. Consejos y buenas prácticas
UDA-Desarrollo RUP. Consejos y buenas prácticasUDA-Desarrollo RUP. Consejos y buenas prácticas
UDA-Desarrollo RUP. Consejos y buenas prácticasAnder Martinez
 
UDA-Anexo gestión de seguridad
UDA-Anexo gestión de seguridadUDA-Anexo gestión de seguridad
UDA-Anexo gestión de seguridadAnder Martinez
 
UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)Ander Martinez
 
Lets make a better react form
Lets make a better react formLets make a better react form
Lets make a better react formYao Nien Chung
 
Angular Advanced Routing
Angular Advanced RoutingAngular Advanced Routing
Angular Advanced RoutingLaurent Duveau
 
UDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonUDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonAnder Martinez
 
Web Development with Laravel 5
Web Development with Laravel 5Web Development with Laravel 5
Web Development with Laravel 5Soheil Khodayari
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesAnder Martinez
 

La actualidad más candente (20)

UDA-Componentes RUP. Botonera
UDA-Componentes RUP. BotoneraUDA-Componentes RUP. Botonera
UDA-Componentes RUP. Botonera
 
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
 
UDA-Componentes RUP. Feedback
UDA-Componentes RUP. FeedbackUDA-Componentes RUP. Feedback
UDA-Componentes RUP. Feedback
 
UDA-Componentes RUP. Accordion
UDA-Componentes RUP. AccordionUDA-Componentes RUP. Accordion
UDA-Componentes RUP. Accordion
 
UDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingUDA-Componentes RUP. Reporting
UDA-Componentes RUP. Reporting
 
UDA-Componentes RUP. Tabla.v2.4.6
UDA-Componentes RUP. Tabla.v2.4.6UDA-Componentes RUP. Tabla.v2.4.6
UDA-Componentes RUP. Tabla.v2.4.6
 
UDA-Componentes RUP. Fecha
UDA-Componentes RUP. FechaUDA-Componentes RUP. Fecha
UDA-Componentes RUP. Fecha
 
UDA-Guia de desarrollo
UDA-Guia de desarrolloUDA-Guia de desarrollo
UDA-Guia de desarrollo
 
UDA-Componentes RUP. Upload
UDA-Componentes RUP. UploadUDA-Componentes RUP. Upload
UDA-Componentes RUP. Upload
 
UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.UDA-Plugin UDA. Guia de uso del plugin.
UDA-Plugin UDA. Guia de uso del plugin.
 
UDA-Desarrollo RUP. Consejos y buenas prácticas
UDA-Desarrollo RUP. Consejos y buenas prácticasUDA-Desarrollo RUP. Consejos y buenas prácticas
UDA-Desarrollo RUP. Consejos y buenas prácticas
 
UDA-Anexo gestión de seguridad
UDA-Anexo gestión de seguridadUDA-Anexo gestión de seguridad
UDA-Anexo gestión de seguridad
 
UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)UDA-Componentes RUP. Combo (v2.1.1 deprecado)
UDA-Componentes RUP. Combo (v2.1.1 deprecado)
 
Rest API
Rest APIRest API
Rest API
 
Lets make a better react form
Lets make a better react formLets make a better react form
Lets make a better react form
 
Angular Advanced Routing
Angular Advanced RoutingAngular Advanced Routing
Angular Advanced Routing
 
UDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonUDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jackson
 
Flutter
FlutterFlutter
Flutter
 
Web Development with Laravel 5
Web Development with Laravel 5Web Development with Laravel 5
Web Development with Laravel 5
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
 

Similar a UDA-Componentes RUP. Formulario

UDA-Componentes RUP. Árbol
UDA-Componentes RUP. ÁrbolUDA-Componentes RUP. Árbol
UDA-Componentes RUP. ÁrbolAnder Martinez
 
UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasAnder Martinez
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0Ander Martinez
 
UDA-Componentes RUP. Wizard
UDA-Componentes RUP. WizardUDA-Componentes RUP. Wizard
UDA-Componentes RUP. WizardAnder Martinez
 
UDA-Anexo emulación xhr-iframes
UDA-Anexo emulación xhr-iframesUDA-Anexo emulación xhr-iframes
UDA-Anexo emulación xhr-iframesAnder Martinez
 
UDA-Componentes RUP. Autocomplete (v2.1.0 deprecado)
UDA-Componentes RUP. Autocomplete  (v2.1.0 deprecado)UDA-Componentes RUP. Autocomplete  (v2.1.0 deprecado)
UDA-Componentes RUP. Autocomplete (v2.1.0 deprecado)Ander Martinez
 
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)Ander Martinez
 
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)Ander Martinez
 
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)Ander Martinez
 
Computación avanzada en java cert
Computación avanzada en java certComputación avanzada en java cert
Computación avanzada en java certMaestros Online
 
UDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingUDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingAnder Martinez
 
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)Ander Martinez
 
UDA-Componentes RUP. Tooltip
UDA-Componentes RUP. TooltipUDA-Componentes RUP. Tooltip
UDA-Componentes RUP. TooltipAnder Martinez
 
UDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextualUDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextualAnder Martinez
 
UDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraUDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraAnder Martinez
 
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
UDA-Componentes RUP. Hora  (v2.1.0 deprecado)UDA-Componentes RUP. Hora  (v2.1.0 deprecado)
UDA-Componentes RUP. Hora (v2.1.0 deprecado)Ander Martinez
 

Similar a UDA-Componentes RUP. Formulario (20)

UDA-Componentes RUP. Árbol
UDA-Componentes RUP. ÁrbolUDA-Componentes RUP. Árbol
UDA-Componentes RUP. Árbol
 
UDA-Componentes RUP. Migas
UDA-Componentes RUP. MigasUDA-Componentes RUP. Migas
UDA-Componentes RUP. Migas
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0
 
UDA-Componentes RUP. Wizard
UDA-Componentes RUP. WizardUDA-Componentes RUP. Wizard
UDA-Componentes RUP. Wizard
 
UDA-Anexo emulación xhr-iframes
UDA-Anexo emulación xhr-iframesUDA-Anexo emulación xhr-iframes
UDA-Anexo emulación xhr-iframes
 
UDA-Componentes RUP. Autocomplete (v2.1.0 deprecado)
UDA-Componentes RUP. Autocomplete  (v2.1.0 deprecado)UDA-Componentes RUP. Autocomplete  (v2.1.0 deprecado)
UDA-Componentes RUP. Autocomplete (v2.1.0 deprecado)
 
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)UDA-Componentes RUP. Jerarquía  (v2.1.1 deprecado)
UDA-Componentes RUP. Jerarquía (v2.1.1 deprecado)
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
UDA-Componentes RUP. Tabla 2.4.1 (deprecado)
 
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
UDA-Componentes RUP. Mensajes (v2.1.1 deprecado)
 
Computación avanzada en java cert
Computación avanzada en java certComputación avanzada en java cert
Computación avanzada en java cert
 
UDA-Componentes RUP. Reporting
UDA-Componentes RUP. ReportingUDA-Componentes RUP. Reporting
UDA-Componentes RUP. Reporting
 
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
 
Strust
StrustStrust
Strust
 
Formularios al limite
Formularios al limiteFormularios al limite
Formularios al limite
 
UDA-Componentes RUP. Tooltip
UDA-Componentes RUP. TooltipUDA-Componentes RUP. Tooltip
UDA-Componentes RUP. Tooltip
 
UDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextualUDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextual
 
Ajax
AjaxAjax
Ajax
 
UDA-Componentes RUP. Hora
UDA-Componentes RUP. HoraUDA-Componentes RUP. Hora
UDA-Componentes RUP. Hora
 
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
UDA-Componentes RUP. Hora  (v2.1.0 deprecado)UDA-Componentes RUP. Hora  (v2.1.0 deprecado)
UDA-Componentes RUP. Hora (v2.1.0 deprecado)
 

Más de Ander Martinez

Arinbide Adaptativo. Visión del producto.v1.0
Arinbide Adaptativo. Visión del producto.v1.0Arinbide Adaptativo. Visión del producto.v1.0
Arinbide Adaptativo. Visión del producto.v1.0Ander Martinez
 
Arinbide Adaptativo. Retrospectiva.v1.0
Arinbide Adaptativo. Retrospectiva.v1.0Arinbide Adaptativo. Retrospectiva.v1.0
Arinbide Adaptativo. Retrospectiva.v1.0Ander Martinez
 
Arinbide Adaptativo. Plan de entregas.v1.0
Arinbide Adaptativo. Plan de entregas.v1.0Arinbide Adaptativo. Plan de entregas.v1.0
Arinbide Adaptativo. Plan de entregas.v1.0Ander Martinez
 
Arinbide Adaptativo. Pila de sprint.v1.0
Arinbide Adaptativo. Pila de sprint.v1.0Arinbide Adaptativo. Pila de sprint.v1.0
Arinbide Adaptativo. Pila de sprint.v1.0Ander Martinez
 
Arinbide Adaptativo. Pila de producto.v1.0
Arinbide Adaptativo. Pila de producto.v1.0Arinbide Adaptativo. Pila de producto.v1.0
Arinbide Adaptativo. Pila de producto.v1.0Ander Martinez
 
Arinbide Adaptativo. Pila de impedimentos.v1.1
Arinbide Adaptativo. Pila de impedimentos.v1.1Arinbide Adaptativo. Pila de impedimentos.v1.1
Arinbide Adaptativo. Pila de impedimentos.v1.1Ander Martinez
 
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0Ander Martinez
 
Arinbide Adaptativo. Monitorización.v1.0
Arinbide Adaptativo. Monitorización.v1.0Arinbide Adaptativo. Monitorización.v1.0
Arinbide Adaptativo. Monitorización.v1.0Ander Martinez
 
Arinbide Adaptativo. Manual de usuario.v1.0
Arinbide Adaptativo. Manual de usuario.v1.0Arinbide Adaptativo. Manual de usuario.v1.0
Arinbide Adaptativo. Manual de usuario.v1.0Ander Martinez
 
Arinbide Adaptativo. Diseño técnico.v1.0
Arinbide Adaptativo. Diseño técnico.v1.0Arinbide Adaptativo. Diseño técnico.v1.0
Arinbide Adaptativo. Diseño técnico.v1.0Ander Martinez
 
Arinbide Adaptativo. Defectos y errores .v1.0
Arinbide Adaptativo. Defectos y errores .v1.0Arinbide Adaptativo. Defectos y errores .v1.0
Arinbide Adaptativo. Defectos y errores .v1.0Ander Martinez
 
Arinbide Adaptativo. Acta de reunión.v1.1
Arinbide Adaptativo. Acta de reunión.v1.1Arinbide Adaptativo. Acta de reunión.v1.1
Arinbide Adaptativo. Acta de reunión.v1.1Ander Martinez
 
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0Ander Martinez
 
Arinbide adaptativo.v1.0
Arinbide adaptativo.v1.0Arinbide adaptativo.v1.0
Arinbide adaptativo.v1.0Ander Martinez
 
UDA-Anexo uso de webDAV
UDA-Anexo uso de webDAVUDA-Anexo uso de webDAV
UDA-Anexo uso de webDAVAnder Martinez
 

Más de Ander Martinez (16)

Arinbide Adaptativo. Visión del producto.v1.0
Arinbide Adaptativo. Visión del producto.v1.0Arinbide Adaptativo. Visión del producto.v1.0
Arinbide Adaptativo. Visión del producto.v1.0
 
Arinbide Adaptativo. Retrospectiva.v1.0
Arinbide Adaptativo. Retrospectiva.v1.0Arinbide Adaptativo. Retrospectiva.v1.0
Arinbide Adaptativo. Retrospectiva.v1.0
 
Arinbide Adaptativo. Plan de entregas.v1.0
Arinbide Adaptativo. Plan de entregas.v1.0Arinbide Adaptativo. Plan de entregas.v1.0
Arinbide Adaptativo. Plan de entregas.v1.0
 
Arinbide Adaptativo. Pila de sprint.v1.0
Arinbide Adaptativo. Pila de sprint.v1.0Arinbide Adaptativo. Pila de sprint.v1.0
Arinbide Adaptativo. Pila de sprint.v1.0
 
Arinbide Adaptativo. Pila de producto.v1.0
Arinbide Adaptativo. Pila de producto.v1.0Arinbide Adaptativo. Pila de producto.v1.0
Arinbide Adaptativo. Pila de producto.v1.0
 
Arinbide Adaptativo. Pila de impedimentos.v1.1
Arinbide Adaptativo. Pila de impedimentos.v1.1Arinbide Adaptativo. Pila de impedimentos.v1.1
Arinbide Adaptativo. Pila de impedimentos.v1.1
 
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
Arinbide Adaptativo. Normas, participantes y procedimientos.v1.0
 
Arinbide Adaptativo. Monitorización.v1.0
Arinbide Adaptativo. Monitorización.v1.0Arinbide Adaptativo. Monitorización.v1.0
Arinbide Adaptativo. Monitorización.v1.0
 
Arinbide Adaptativo. Manual de usuario.v1.0
Arinbide Adaptativo. Manual de usuario.v1.0Arinbide Adaptativo. Manual de usuario.v1.0
Arinbide Adaptativo. Manual de usuario.v1.0
 
Arinbide Adaptativo. Diseño técnico.v1.0
Arinbide Adaptativo. Diseño técnico.v1.0Arinbide Adaptativo. Diseño técnico.v1.0
Arinbide Adaptativo. Diseño técnico.v1.0
 
Arinbide Adaptativo. Defectos y errores .v1.0
Arinbide Adaptativo. Defectos y errores .v1.0Arinbide Adaptativo. Defectos y errores .v1.0
Arinbide Adaptativo. Defectos y errores .v1.0
 
Arinbide Adaptativo. Acta de reunión.v1.1
Arinbide Adaptativo. Acta de reunión.v1.1Arinbide Adaptativo. Acta de reunión.v1.1
Arinbide Adaptativo. Acta de reunión.v1.1
 
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
Arinbide adaptativo. Anexo. Conceptos básicos. v1.0
 
Arinbide adaptativo.v1.0
Arinbide adaptativo.v1.0Arinbide adaptativo.v1.0
Arinbide adaptativo.v1.0
 
Arinbide.v3.0
Arinbide.v3.0Arinbide.v3.0
Arinbide.v3.0
 
UDA-Anexo uso de webDAV
UDA-Anexo uso de webDAVUDA-Anexo uso de webDAV
UDA-Anexo uso de webDAV
 

Último

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 

Último (20)

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 

UDA-Componentes RUP. Formulario

  • 1. UDA – Utilidades de desarrollo de aplicaciones by EJIE is licensed under a Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 Unported License. UDA - Utilidades de Desarrollo de Aplicaciones Componentes RUP – Formulario Fecha: 22/11/2013 Referencia: EJIE S.A. Mediterráneo, 14 Tel. 945 01 73 00* Fax. 945 01 73 01 01010 Vitoria-Gasteiz Posta-kutxatila / Apartado: 809 01080 Vitoria-Gasteiz www.ejie.es
  • 2. Componentes RUP – Formulario ii/14 Control de documentación Título de documento: Componentes RUP – Formulario Histórico de versiones Código: Versión: Fecha: Resumen de cambios: 2.0.0 11/07/2012 Primera versión. 2.1.0 18/09/2012 Actualización de las versiones de las librerías JavaScript subyacentes. Añadido del apartado referente a la emulación de peticiones XHR mediante el uso de iframes 2.1.1 09/01/2013 Añadidos nuevos métodos públicos: ajaxSubmit, formToJson. Añadida una nueva propiedad de configuración del componente: useJsonIfPossible 2.4.0 22/11/2013 Se distribuye la versión minimizada de los ficheros javascript y de estilos de RUP. Cambios producidos desde la última versión Se distribuye la versión minimizada de los ficheros javascript y de estilos de RUP. Control de difusión Responsable: Ander Martínez Aprobado por: Firma: Fecha: Distribución: Referencias de archivo Autor: Nombre archivo:
  • 3. Componentes RUP – Formulario iii/14 Localización: Contenido Capítulo/sección Página 1. Introducción 4 2. Ejemplo 4 3. Casos de uso 4 4. Infraestructura 5 4.1. Ficheros 5 4.2. Dependencias 5 5. Invocación 6 6. Parámetros 7 7. Funciones 8 8. Sobreescritura del theme 9 9. Integración con UDA 9 9.1. Envío y recepción de datos 9 9.2. Envío de múltiples entidades 9 9.3. Subida de ficheros 12 10. Interacción con otros componentes RUP 14
  • 4. Componentes RUP – Formulario 4/14 1. Introducción La descripción del Componente Formulario, visto desde el punto de vista de RUP, es la siguiente: Permite al usuario introducir datos en una serie de campos para ser enviados al servidor y ser procesados. 2. Ejemplo Se presenta a continuación un ejemplo de este componente: 3. Casos de uso Se aconseja la utilización de este componente: • Cuando sea necesario enviar formularios vía AJAX.
  • 5. Componentes RUP – Formulario 5/14 4. Infraestructura A continuación se comenta la infraestructura necesaria para el correcto funcionamiento del componente. • Únicamente se requiere la inclusión de los ficheros que implementan el componente (js y css) comentados en los apartados Ficheros y Dependencias. 4.1. Ficheros Ruta Javascript: rup/scripts/ Fichero de plugin: rup.form-x.y.z.js Ruta theme: rup/basic-theme/ Fichero CSS del theme: theme.rup.form-x.y.z.css 4.2. Dependencias Por la naturaleza de desarrollo de los componentes (patrones) como plugins basados en la librería JavaScript jQuery, es necesaria la inclusión del esta. La versión elegida para el desarrollo ha sido la versión 1.8.0. • jQuery 1.8.0: http://jquery.com/ La gestión de la ciertas partes visuales de los componentes, se han realizado mediante el plugin jQuery UI que se basa en jQuery y se utiliza para construir aplicaciones web altamente interactivas. Este plugin, proporciona abstracciones de bajo nivel de interacción y animación, efectos avanzados de alto nivel, componentes personalizables (estilos) ente otros. La versión utilizada en el desarrollo ha sido la 1.8.23. • jQuery UI 1.8.23: http://jqueryui.com/ Las distintas funcionalidades que aporta el componente y las prestaciones generales del mismo, se apoyan en el plugin jQuery File Upload. Para el correcto funcionamiento del componente Upload, se precisa de la inclusión de dicho plugin. • jQuery-File-Upload: http://blueimp.github.com/jQuery-File-Upload/ Los ficheros necesarios para el correcto funcionamiento del componente son: • jquery-1.8.0.js • jquery-ui-1.8.23.custom.js • jquery-ui-1.8.23.custom.css • jquery.form.js • rup.form-x.y.z.js
  • 6. Componentes RUP – Formulario 6/14 4.3. Versión minimizada A partir de la versión v2.4.0 se distribuye la versión minimizada de los componentes RUP. Estos ficheros contienen la versión compactada y minimizada de los ficheros javascript y de estilos necesarios para el uso de todos los compontente RUP. Los ficheros minimizados de RUP son los siguientes: • rup/scripts/min/rup.min-x.y.z.js • rup/basic-theme/rup.min-x.y.z.css Estos ficheros son los que deben utilizarse por las aplicaciones. Las versiones individuales de cada uno de los componentes solo deberán de emplearse en tareas de desarrollo o depuración. 5. Invocación El componente formulario se invoca sobre un formulario html existente en la jsp. El formulario contendrá los campos que se desean enviar. Un ejemplo de un formulario que se desee enviar es el siguiente: <form id="formulario" action="/form"> <label for="nombre">Nombre</label> <input type="text" name="nombre" id="nombre" /> <label for="apellido1" >Primer apellido</label> <input type="text" name="apellido1" id="apellido1" /> <label for="apellido2" >Segundo apellido</label> <input type="text" name="apellido2" id="apellido2" /> </form> En este caso el formulario dispone de tres campos que serán enviados al servidor. Para realizar la invocación del componente formulario realizaremos lo siguiente: var properties={ // Propiedades de configuración }; $("#formulario").rup_form(properties); Como ya se profundizará mas adelante, mediante las propiedades indicadas en la invocación del componente, se realiza la configuración del mismo.
  • 7. Componentes RUP – Formulario 7/14 6. Parámetros A continuación se muestran los posibles parámetros de configuración que recibe el componente. • beforeSerialize: Función de callback que será invocada antes de realizarse la serialización del formulario. Permite la modificación de los datos del formulario antes de que estos sean recuperados para su procesado por el componente. Valor por defecto, null. • beforeSubmit: Función de callback que será invocada antes de realizarse el envío del formulario. Permite acceder a la información que será enviada al formulario. En caso de retornar false no se realizará en envío. Valor por defecto, null. • clearForm: Propiedad booleana que determina si el formulario debe de limpiarse después de realizar el envío. • data: Mediante esta propiedad es posible especificar parámetros extra que sean enviados al servidor. • dataType: Tipo de datos esperados en la respuesta. Los valores posibles son null, xml, json y script. Valor por defecto null. • error: Función de callback que será invocada cuando se produzca un error. • forceSync: Propiedad booleana. En caso de ser true elimina la corta espera que se produce antes de enviar el formulario cuando se envían ficheros o se utiliza la opción de iframe. La espera se utiliza para permitir al navegador actualizar modificaciones realizadas en el DOM antes de que se realice el envío de los datos. Por defecto a false. • iframe: Determina si el formulario debe de ser enviado siempre mediante un iframe. Por defecto a false. • iframeSrc: Propiedad de texto que deberá ser utlizada siempre en conjunción con la propiedad iframe. Por defecto, about:blank. Por defecto para páginas que utlicen el protocolo https, javascript:false. • iframeTarget: Identifica el iframe que será utilizado como target en la respuesta en los envíos de ficheros. Por defecto, el componente creará un iframe temporal para capturar la respuesta del envío de ficheros. Valor por defecto, null. • multimodel: Permite especificar la configuración que se deberá de aplicar a la hora de realizar el envío de varias entidades en la misma petición. La configuración de este parámetro se detalla en el apartado 9.2. Valor por defecto, false. • replaceTarget: Opcionalmente se utililiza junto con la opción target. En caso de ser true el elemento identificado en la opción target será reemplazado. En caso de ser false solo su contenido será reemplazado. Valor por defecto, false. • resetForm: Propiedad booleana que determina si el formulario debe ser inicializado al realizarse el envío del mismo. Por defecto, false. • semantic: Propiedad booleana que determina si los campos del formulario deben ser enviado en estricto orden semántico. Por defecto la serialización normal del formulario se realiza en orden semántico exceptuando los campos img. Valor por defencto, false. • success: Método callback que será invocado cuando se reciba la respuesta del formulario. • target: Identifica los elementos de la página que deberán ser actualizados con la respuesta del servidor. El target puede ser indicado mediante un selector de jQuery, un objeto de jQuery o un objeto DOM.
  • 8. Componentes RUP – Formulario 8/14 • type: Detemina el método con el que se enviará el formulario, GET o POST. Por defecto el valor de la propiedad method indicada en el formulario o GET en caso de no encontrarse. • uploadProgress: Método que será invocado con información de progreso del envío del formulario (en caso de estar soportado por el navegador). • url: URL a la cual se realizará en envío del formulario. Por defecto el valor indicado en la propiedad action del formulario. • useJsonIfPossible: Mediante este parámetro se especifica al componente que debe de utilizar el formato application/json como prioridad (siempre que sea posible) al realizar el envío del formulario. Valor por defecto, true. Junto con las propiedades de configuración del componente es posible especificar propiedades de configuración para el método $.ajax de jQuery que será utilizado para el envío de los datos del formulario. 7. Funciones A continuación se detallan las diferentes funciones que integran el componente validación: • ajaxForm: Configura un formulario para ser enviado vía AJAX. Para ello añade los event listener jQuery que sean necesarios. Este método no realiza el envío del formulario. Esta función puede ser invocada sin parámetros o con un simple parámetro que puede ser o una función de callback o un objeto con las propiedades de configuración. • ajaxSubmit: Realiza el envío del formulario. La configuración de este método es la misma que la de ajaxForm. • ajaxFormSubmit: Realiza la misma función que ajaxSubmit. Se mantiene para asegurar la retrocompatibilidad con versiones anteriores. • formSerialize: Serializa el contenido del formulario en un query string. Este método retorna una cadena de texto con el formato nombre1=valor1&nombre2=valor2. • fieldSerialize: Realiza la serialización de campos del formulario en un query string. Retorna una cadena de texto con el formato nombre1=valor1&nombre2=valor2. • formToJson: Realiza la serialización de campos del formulario en un objeto json. Retorna un objeto con el formato {nombre1:valor1, nombre2:valor2…nombreN:valorN}. • fieldValue: Devuelve un array con el valor de los campos indicados. La función siempre devuelve un array. • resetForm: Inicializa el formulario con su estado inicial invocando al método reset nativo. • clearForm: Limpia los elementos del formulario.
  • 9. Componentes RUP – Formulario 9/14 • clearFields: Limpia los campos especificados mediante el selector de jQuery. 8. Sobreescritura del theme No aplica. 9. Integración con UDA En este apartado se va a explicar las diferentes interacciones que realiza el componente con el resto de subsistemas definidos en UDA. 9.1. Envío y recepción de datos El componente formulario realiza, por defecto, el envío de los datos en formato application/json, excepto en los casos en los que se ha especificado otro formato de envío o cuando se debe realizar envío de un fichero. El envío de ficheros se detallará en un apartado posterior. Una vez explicado este punto, se presentan dos escenarios al realizar el envío del formulario: • El contenido del formulario se envía en formato application/json. En este caso el data binding de estos datos se realiza sobre el parámetro del controller anotado mediante @RequestBody. El proceso de data binding del formulario enviado en formato application/json se realiza mediante el componente Jackson JSON Processor. El uso y configuración del mismo se detalla en el documento correspondiente. El método del controller encargado de recoger los datos se declarará del siguiente modo: @RequestMapping(method = RequestMethod.POST) public @ResponseBody Alumno add(@RequestBody Alumno alumno){ } • El contenido del formulario se envía en formato un formato diferente al application/json, por ejemplo en multipart/form-data o application/x-www-form-urlencoded. En este caso el data binding de estos datos se realiza sobre el parámetro del controller anotado mediante @ModelAttribute. El método del controller encargado de recoger los datos se declarará del siguiente modo: @RequestMapping(method = RequestMethod.POST) public @ResponseBody Alumno edit(@ModelAttribute Alumno alumno){ } 9.2. Envío de múltiples entidades El componente formulario permite, junto con el uso del componente Jackson, el envío y recepción de datos de múltiples entidades dentro de la misma petición.
  • 10. Componentes RUP – Formulario 10/14 Supongamos que se debe de enviar desde la capa de presentación cierta información introducida por el usuario. El databinding de estos datos debe de ser realizado sobre dos beans entre los cuales no existe anidamiento: public class Alumno implements java.io.Serializable { private BidDecimal id; private String nombre; private String apellido1; private String apellido2; // Getters y setters de las propiedades } public class Departamento implements java.io.Serializable { private BidDecimal id; private String descEs; private String descEu; // Getters y setters de las propiedades } Para evitar la creación de un nuevo tipo de bean cada vez que se da esta necesidad se ha implementado una nueva funcionalidad de Jackson. Esta funcionalidad es proporcionada por el UdaModule y permite realizar el databinding de varias entidades sobre un parámetro del método de tipo HashMap. Para poder determinar en cada petición si se va a utilizar o no el databinding múltiple, se incluye una cabecera en la petición, RUP_MULTI_ENTITY. En caso de ser true se activará el comportamiento especial. Este sería el proceso completo de databinding múltiple: 1. Partimos de un formulario definido en la jsp en el que se dispone de varios campos correspondientes a varias entidades: <form id="formMultientidades" action='/multientidades' method="post"> <input type="text" name="alumno.id" /> <input type="text" name="alumno.nombre" /> <input type="text" name="alumno.apellido1" /> <input type="text" name="alumno.apellido2" /> <input type="text" name="departamento.id" /> <input type="text" name="departamento.descEs" /> <input type="text" name="departamento.descEu" /> <input type="submit" value="Enviar" /> </form> 2. Se invoca al componente RUP formulario. En la configuración se especifica la información necesaria para realizar el data binding múltiple: $("#formMultientidades").rup_form({ feedback:$("#feedbackMensajes"), multimodel:{ "alumno":"com.ejie.x21a.model.Alumno", "departamento":"com.ejie.x21a.model.Departamento" }, success:function(xhr){ // Tratamiento de la petición realizada correctamente }, validate:{
  • 11. Componentes RUP – Formulario 11/14 rules:{ // Reglas de validación necesarias } } }); En la propiedad multimodel se especifica la correlación entre las nombres de las propiedades y de los objetos Java. La petición resultante tiene el siguiente aspecto: Content-Type application/json; charset=UTF-8 RUP_MULTI_ENTITY true { "alumno": {"id":"1","nombre":"Nom","apellido1":"ap1","apellido2":"ap2"}, "departamento": {"id":"3","descEs":"Dep_es","descEu":"Dep_eu"}, "rupEntityMapping":{ "alumno":"com.ejie.x21a.model.Alumno", "departamento":"com.ejie.x21a.model.Departamento" } } En el objeto json se envía la siguiente información: • Los datos correspondientes a cada una de las entidades sobre las que se debe realizar el databinding en formato json. • Un objeto de nombre rupEntityMapping que contiene la correlación entre los nombres de los objetos y el tipo Java. 3. La petición se mapea sobre el método del controller correspondiente. El tipo de parámetro del parámetro sobre el que se van a crear las nuevas entidades debe ser de tipo java.util.Map: @RequestMapping(value = "form/multientidades", method = RequestMethod.POST) public @ResponseBody Object getFormmMultientidades(@RequestBody Map<String, Object> multiModelMap) { // Obtención del alumno Alumno alumno = (Alumno)multiModelMap.get("alumno"); // Obtención del departamento Departamento departamento = (Departamento)multiModelMap.get("departamento"); } El key de cada uno de los elementos del mapa y el tipo de objeto que se crea en dicho elemento se corresponde con la configuración indicada en el objeto json rupEntityMapping. El componente permite también en envío de múltiples entidades del mismo tipo. Las diferentes entidades se diferenciarían mediante el nombre del parámetro: <form id="formMultientidades" action='/multientidades' method="post"> <input type="text" name="comarca1.code" /> <input type="text" name="comarca1.descEs" />
  • 12. Componentes RUP – Formulario 12/14 <input type="text" name="comarca1.descEu" /> <input type="text" name="comarca2.code" /> <input type="text" name="comarca2.descEs" /> <input type="text" name="comarca2.descEu" /> <input type="text" name="comarca3.code" /> <input type="text" name="comarca3.descEs" /> <input type="text" name="comarca3.descEu" /> <input type="submit" value="Enviar" /> </form> La invocación y la configuración del componente formulario sería la siguiente: $("#formMultientidades").rup_form({ feedback:$("#feedbackMensajes"), multimodel:{ "comarca1":"com.ejie.x21a.model.Comarca", "comarca2":"com.ejie.x21a.model.Comarca", "comarca3":"com.ejie.x21a.model.Comarca" }, success:function(xhr){ // Tratamiento de la petición realizada correctamente }, validate:{ rules:{ // Reglas de validación necesarias } } }); Por su parte, el método del controller encargado de la recepción de las entidades sería el siguiente: @RequestMapping(value = "/multientidades", method = RequestMethod.POST) public @ResponseBody Object getFormmMultientidades(@RequestBody Map<String, Object> multiModelMap) { // Obtención de la entidad comarca1 Comarca comarca1 = (Comarca)multiModelMap.get("comarca1"); // Obtención de la entidad comarca2 Comarca comarca2 = (Comarca)multiModelMap.get("comarca2"); // Obtención de la entidad comarca3 Comarca comarca3 = (Comarca)multiModelMap.get("comarca3"); } 9.3. Subida de ficheros Para realizar la subida de ficheros basta con incorporar un campo file al formulario que se va a enviar. El componente formulario detecta que debe de gestionar la subida de un fichero y actúa en consecuencia. La principal diferencia respecto al envío de una petición normal es que se realiza mediante una multipart/form-data en lugar de una application/x-www-form-urlencoded. Para llevar a cabo el envío de ficheros mediante el componente form se deben llevar a cabo los siguientes pasos: 1. Habilitar el soporte de Spring para peticiones multipart. Por defecto Spring no tiene habilitada la gestión de subidas de ficheros (multipart).
  • 13. Componentes RUP – Formulario 13/14 Para habilitarlo se debe de añadir un MultipartResolver al contexto de aplicación de Spring. Esto se realiza editando la configuración del fichero mvc.config.xml e incluyendo la siguiente definición: <bean id="multipartResolver" class="com.ejie.x38.util.UdaMultipartResolver" > </bean> Desde UDA se proporciona un MultipartResolver que permite el envío de peticiones multipart mediante PUT. 2. Crear un formulario con un campo file mediante el cual se seleccionará el fichero a enviar: <form id="formFichero" action='/subidaFichero' method="post"> ... ... <input type="file" id="campoFichero" name="fichero" /> ... ... <input type="submit" value="Enviar" /> </form> 3. Invocación del componente formulario. $("#formFichero").rup_form({ // Obtención de la entidad comarca1 }); 4. Para obtener en el controller el fichero enviado se deberá de definir un parámetro del siguiente modo. El parámetro se muestra resaltado en el ejemplo: @RequestMapping(value="/subidaFichero", method = RequestMethod.POST) public void subirFichero( @ModelAttribute Alumno alumno, @RequestParam(value="fichero", required=false) MultipartFile fichero) { // Procesado del fichero } IMPORTANTE: En el caso de utilizar el navegador Internet Explorer 8, la subida de ficheros mediante un formulario se realiza mediante el uso de iframe. Esto es debido a que la subida de ficheros mediante peticiones AJAX no está soportada en este navegador. La configuración que se ha de realizar para permitir la interacción correcta entre los iframes y el resto de la infraestructura (request mappings, http error code, validaciones…) se detalla en el anexo Anexo-Emulacion_xhr_iframes.doc
  • 14. Componentes RUP – Formulario 14/14 10. Interacción con otros componentes RUP Para facilitar la gestión de los formularios de la aplicación, se ha tratado de facilitar la validación de los campos del formulario. Para ello se ha integrado en el componente formulario el uso del componente validación. La configuración de las validaciones que se deben de aplicar a los campos del formulario se realiza del mismo modo que se describe en el documento de uso del componente validación. Las opciones de configuración del componente validación se indican en la propiedad validate del las opciones de configuración del componente formulario. A continuación se muestra un ejemplo de una invocación del componente formulario en el que se incluye la configuración correspondiente a la validación de sus campos: $("#formulario").rup_form({ url:"/formulario/guardar", success: function(){ }, validate:{ rules:{ "nombre":{required:true}, "apellido1":{required:true} } } }); La configuración referente al proceso de validación se detalla en la guía de uso del componente RUP validación.