<%{%> <%@ page buffer="64kb" %> <%}%> <%{%> <%! private static java.util.regex.Pattern URL_DIR_PATTERN = java.util.regex.Pattern.compile("(/.*?)(/[^./]++[.]jsp)?+"); private static void includeFile(final javax.servlet.jsp.JspWriter out, final javax.servlet.http.HttpServletRequest request, final javax.servlet.ServletContext c, final String path) throws Exception{ try{ Class resourcesClass = null; try{ resourcesClass = Class.forName("com.mini.jasper.util.Resources"); } catch(final ClassNotFoundException e){ resourcesClass = null; } if(resourcesClass == null){ // doesen't work: in = c.getResourceAsStream(abs + path); // doesen't work: in = c.getClass().getClassLoader().getResourceAsStream(abs + path); out.write("<" + "!--#include virtual=\""); out.write(path); out.write("\" --" + ">"); return; } final String servletPath = request.getServletPath(); final java.util.regex.Matcher matcher = URL_DIR_PATTERN.matcher(servletPath); if(!matcher.matches()){ throw new IllegalStateException("Can't determine directory from JSP servlet path " + servletPath); } final String absPath = matcher.group(1) + "/" + path; final java.lang.reflect.Method getResourceAsStream = resourcesClass.getMethod("getResourceAsStream", new Class[]{ javax.servlet.ServletContext.class, String.class }); final java.io.InputStream in = (java.io.InputStream)getResourceAsStream.invoke(null, new Object[]{c, absPath}); if(in == null){ throw new java.io.IOException("No such resource: " + absPath); } final java.io.Reader r = new java.io.InputStreamReader(in, "UTF-8"); try{ /* * MTU at BMW should be around 1500 bytes. so we can * fetch around 1kb of data per read. but not 1.5k as * we leave a little bit for the network protocols. */ final char[] buffer = new char[1200]; int len; while((len = r.read(buffer)) >= 0){ out.write(buffer, 0, len); } } finally{ try{ r.close(); } catch(final java.io.IOException e){ /* * maybe the reader was alredy broken before * the close() */ } } } catch(final Throwable t){ throw new RuntimeException("Can't include resource " + path, t); } } %> <%}%>
 
 

CONTACTO.

 

TU LÍNEA DIRECTA CON MINI.

 
 

El formulario perfecto para tu solicitud de contacto: Probar un MINI, servicio técnico, solicitar un catálogo y mucho más.

Los campos obligatorios están marcados con asterisco.

Temática de la consulta o los comentarios:

Razón por la que te quieres poner en contacto*

<%{%> <%@ page import="com.bmw.internetm.silo.framework.common.*" %> <%@ page import="com.bmw.internetm.silo.framework.common.utils.*" %> <%@ page import="com.bmw.internetm.silo.framework.configuration.*" %> <%@ page import="com.bmw.internetm.silo.adapter.four.mapping.campaign.*" %> <%@ page import="com.bmw.internetm.silo.adapter.four.logic.*" %> <%@ page import="com.bmw.four.service.FourAttributeCatalog" %> <%@ page import="com.bmw.four.*" %> <%@ page import="java.util.*" %> <%@ include file="../../../../_common/_includes/forms.inc.jsp" %> <%}%> <%String country=null;country="es";%> <%String language=null;language="es";%> <%String step1_pixels=null;step1_pixels="";%> <%String step2_pixels=null;step2_pixels="";%> <%String step3_pixels=null;step3_pixels="";%> <%java.lang.StringBuffer setCounters=null;%> <%com.bmw.internetm.silo.jsptools.form.FormBuilder fb=null;%> <%com.bmw.internetm.silo.framework.common.SiloLocale sl=null;%> <%java.util.LinkedList allMats=null;%> <%{%> <% sl = new SiloLocale(country, language); allMats = (LinkedList) session.getAttribute("infomaterials"); if (allMats == null) { allMats = new LinkedList(); Campaign mc = null; Value[] groups = null; mc = CampaignFactory.getMasterCampaign(sl); if (mc == null) throw new com.bmw.internetm.silo.framework.exception.InvalidConfigurationException("Locale has no MasterCampaign!"); if (!mc.isSynchronizedWithEcom()) throw new com.bmw.internetm.silo.framework.exception.InvalidConfigurationException("MasterCampaign is not eCOM Campaign!"); groups = ValueHome.findOptions(com.bmw.four.service.FourAttributeCatalog.ATTR_NO_RFI_GROUP_NAME, sl.getCountryCode(), sl.getLanguageCode(), mc.getCampaignPhaseNo()); for (int i=0; i < groups.length; i++) { //iterate over infomaterial groups int gNo = Integer.parseInt(groups[i].getIdentifier()); Value[] mats = ValueHome.findOptions(gNo, FourAttributeCatalog.ATTR_NO_RFI_INFOMATERIAL_NAME, sl.getCountryCode(), sl.getLanguageCode(), mc.getCampaignPhaseNo()); for (int j=0; j < mats.length; j++) { //and infomaterials within the group int soNo = Integer.parseInt(mats[j].getIdentifier()); Value[] matCode = ValueHome.findOptions(soNo, FourAttributeCatalog.ATTR_NO_RFI_INFOMATERIAL_CODE, sl.getCountryCode(), sl.getLanguageCode(), mc.getCampaignPhaseNo()); allMats.add(new String[] { groups[i].getValue(), matCode[0].getValue(), mats[j].getValue() } ); } } session.setAttribute("infomaterials", allMats); } %> <%}%> <%{%><% String formName = "rfi"; RequestData requestData = createRequestData(formName, request); requestData.setSiloLocale(sl); //execute whatever action Result result = perform(requestData, response); fb = init(requestData, result, response); printAdditionalHead(fb, out, country, language); RequestParameters params = requestData.getRequestParameters(); setCounters = new StringBuffer(); String action = requestData.getAction(); String preselected_info_id = request.getParameter("infomaterial_id"); if (preselected_info_id == null) { //used by IO flashes preselected_info_id = request.getParameter("information_id"); } if (chooseFormPartDisplay(requestData.getAction(), fb, out, request, result, formName)) { return; //success and redirect } //for validation failures: restore the non-silo elements on this page by available form data: FormSection sec = fb.getSection( "select"); Iterator it = sec.iterator(); Set selectedIds = new HashSet(); //identify selected infomaterials while( it.hasNext()) { FormElement ele = (FormElement) it.next(); String element_name = ele.getName(); int last_underscore = element_name.lastIndexOf("_") + 1; if (last_underscore == -1) continue; String key = element_name.substring(last_underscore); if( element_name.startsWith( "ecom_rfi_material")) { if( "true".equalsIgnoreCase( ele.getCurrentValue())) { //set by form selectedIds.add(key); } } else if (element_name.startsWith("material_id_")) { if (preselected_info_id == null) continue; if (preselected_info_id.equals(ele.getCurrentValue())) { //set by url parameter selectedIds.add(key); } } } it = selectedIds.iterator(); setCounters = new StringBuffer(""); String bcId = ""; String mod_nav = ""; if (request.getParameter("bcId") != null) { bcId = "&bcId=" + request.getParameter("bcId"); } if (request.getParameter("mod_nav") != null) { mod_nav = "&mod_nav=" + request.getParameter("mod_nav"); } // next line: hack to append breadcrumb and module navigation parameters to
: %> <%= fb.getHtmlCode().replace(';', '&').replace("\" method", bcId + "\" method").replace("\" method", mod_nav + "\" method").replaceFirst("&", "?") %> <%}%>
<%{%>   <%{%>  
3. CONFIRMACIÓN
 
<%{%>
> <%}%> <%{%> <% ListIterator it = allMats.listIterator(); for (int i=0; it.hasNext(); i++) { String[] infoMat = (String[]) it.next(); %> <% } %> <%}%>
SELECCIONA UNO O MÁS CATÁLOGOS.
<%{%> <% String oldGroup = null; ListIterator it = allMats.listIterator(); for (int i=0; it.hasNext(); i++) { String[] infoMat = (String[]) it.next(); String material_group_name = infoMat[0]; String material_id = infoMat[1]; String material_name = infoMat[2]; if (! material_group_name.equals(oldGroup)) { if (oldGroup != null) { //close last group, but not for first group %>
<% } //start of new group oldGroup = material_group_name; %>
<%= material_group_name %>
<% } %>
<% } %>
<%}%>
 
DATOS DE CONTACTO
Introduce tus datos de contacto y haz clic en SIGUIENTE.
<%{%> <%= setCounters %>
<% printSection(fb, "personal_data_left", out); %>
<% printSection(fb, "personal_data_right", out); %>
 
<%}%>
TU MENSAJE
<%{%> <% printSection(fb, "comments", out); %>
 
<% printSection(fb, "buttons_page_1", out); //print tracking pixel Javascript invisible if (formStep.equals("2")) { out.println(step2_pixels); } %>
> <%}%>

La confidencialidad y la integridad de tus datos personales son muy importantes para nosotros. Tus datos se tratarán y se utilizarán de acuerdo con las leyes de protección de datos y no se cederán a terceros sin tu consentimiento previo.

Dichos datos se almacenarán y se procesarán con el único fin de [concertar una prueba de conducción/participar en un concurso/recibir información personalizada sobre los productos] y para la gestión de estos fines.

Permiso para el tratamiento de datos con otros fines

Si deseas seguir recibiendo una atención al cliente óptima una vez atendida tu consulta, deberás aceptar que tus datos sean usados para otros fines (marca la casilla que corresponda):

<%{%> <% printSection(fb, "data_usage_page_2", out); %> <%}%>
Revocación de consentimiento

Puedo obtener información sobre mis datos personales en posesión de BMW AG escribiendo a la dirección de correo MINIKundenbetreuung@MINI.de, o por teléfono llamando al 0180 2 64 64 66 (0,06 /llamada desde una línea de la red fija de Alemania; máx. 0,42 /min. desde redes móviles de Alemania; de lunes a domingo, de 08:00 h a 22.00 h CET) y solicitar que se modifiquen, se borren o se bloqueen. Podré revocar mi consentimiento para la conservación, el tratamiento y el uso de mis datos para otros fines sin necesidad de justificar mi decisión enviando un correo electrónico a la dirección arriba indicada o llamando al número de teléfono indicado. Si estoy registrado, podré consultar, modificar o revocar mi consentimiento de cesión de datos a través de mi perfil de usuario.

<%{%>
<% printSection( fb, "buttons_page_2", out); //print tracking pixel Javascript invisible if (formStep.equals("1")) { out.println(step1_pixels); } %>
<%= fb.getClosingTag() %> <%}%>