Se ha producido un error al procesar la plantilla.
Denied access to method or field getParameter of class org.apache.catalina.core.ApplicationHttpRequest
----
FTL stack trace ("~" means nesting-related):
- Failed at: #local paramValue = request.getParame... [in template "34352066712900#33336#65816767" in function "findMatchedItem" at line 50, column 5]
----
1<#--
2 LANGUAGE HEADER DROPDOWN
3 -->
4<#assign currentURL = themeDisplay.getURLCurrent()>
5<#assign baseURL = themeDisplay.getPortalURL()>
6<#assign relativeURL = currentURL?replace(baseURL, "")>
7
8<#assign translatableParams = ["ics", "ctn"] />
9<#assign matchedItemsCache = buildMatchedItemsCache(translatableParams, locale) />
10
11<#assign desc = themeDisplay.getLanguageId()?split("_")?first >
12<div class="select-btn" id="language-select" role="button" aria-haspopup="listbox" aria-expanded="false" tabindex="0">
13 <#assign siteLanguage = themeDisplay.getLocale().getDisplayLanguage( themeDisplay.getLocale() )?cap_first>
14 <span
15 class="sBtn-text text-uppercase d-flex align-content-center align-items-center">${desc} <span
16 class="fa-solid fa-chevron-down" aria-hidden="true"></span></span>
17</div>
18 <ul class="options hide" role="listbox" aria-labelledby="language-select">
19 <li class="option actives" style="pointer-events:none" role="option" aria-selected="true">
20 <span class="option-text">
21 <svg aria-hidden="true" class="lexicon-icon mr-2 lexicon-icon-${themeDisplay.getLanguageId()?replace('_', '-')?lower_case}">
22 <use href="/o/classic-theme/images/clay/icons.svg#${themeDisplay.getLanguageId()?replace('_', '-')?lower_case}"></use>
23 </svg>
24 ${siteLanguage}
25 </span>
26 </li>
27 <#if entries?has_content>
28 <#list entries as curLanguage>
29 <p>LanguageIdTEST:${curLanguage.getLanguageId()}</p>
30 <#if !curLanguage.isSelected()>
31
32
33
34 <#assign entryHref = buildTranslatedHref(curLanguage.getURL(), curLanguage.getLanguageId(), translatableParams, matchedItemsCache) />
35 <li class="option" role="option"><span class="option-text"> <a href="${entryHref}" class="language-entry-short-text"
36 lang="${curLanguage.getLanguageId()}">${curLanguage.getLongDisplayName()?capitalize}</a> </span></li>
37
38
39 </#if>
40 </#list>
41 </#if>
42</ul>
43
44
45<#-- ============================================================
46 Traduccion de parametros de la URL al cambiar de idioma
47 ============================================================ -->
48
49<#function findMatchedItem paramName locale>
50 <#local paramValue = request.getParameter(paramName)! />
51 <#if !paramValue?has_content>
52 <#return "" />
53 </#if>
54
55 <#local paramValueTrim = paramValue?trim />
56 <#local paramType = paramName?upper_case />
57 <#local endpointURL = "/c/selectoptions/?languageId=" + locale?string + "&sort=name:asc&filter=optionsType eq '" + paramType + "'" />
58 <#local optionsResponse = restClient.get(endpointURL) />
59
60 <#list optionsResponse.items![] as item>
61 <#local valueI18n = item.value_i18n![] />
62 <#local found = false />
63
64 <#list valueI18n?keys as key>
65 <#if valueI18n[key]! == paramValueTrim>
66 <#local found = true />
67 <#break />
68 </#if>
69 </#list>
70
71 <#if !found && (item.value!"") == paramValueTrim>
72 <#local found = true />
73 </#if>
74
75 <#if found>
76 <#return item />
77 </#if>
78 </#list>
79
80 <#return "" />
81</#function>
82
83<#function buildMatchedItemsCache paramNames locale>
84 <#local cache = {} />
85 <#list paramNames as paramName>
86 <#local cache = cache + {paramName: findMatchedItem(paramName, locale)} />
87 </#list>
88 <#return cache />
89</#function>
90
91<#function translateParamInURL originalURL paramName targetLanguageId matchedItemsCache>
92 <#local paramValue = request.getParameter(paramName)! />
93 <#local matchedItem = matchedItemsCache[paramName]!"" />
94
95 <#if !paramValue?has_content || !matchedItem?has_content>
96 <#return originalURL />
97 </#if>
98
99 <#local rawValueInURL = originalURL?replace(".*[?&]" + paramName + "=([^&]*).*", "$1", "r") />
100
101 <#if rawValueInURL == originalURL>
102 <#return originalURL />
103 </#if>
104
105 <#local urlDecoder = staticUtil["java.net.URLDecoder"] />
106 <#local urlEncoder = staticUtil["java.net.URLEncoder"] />
107 <#local decodedValueInURL = urlDecoder.decode(rawValueInURL, "UTF-8") />
108
109 <#if decodedValueInURL != paramValue?trim>
110 <#return originalURL />
111 </#if>
112
113 <#local newValue = matchedItem.value_i18n[targetLanguageId]!matchedItem.value!paramValue />
114
115 <#if newValue == decodedValueInURL>
116 <#return originalURL />
117 </#if>
118
119 <#local newEncoded = urlEncoder.encode(newValue, "UTF-8") />
120
121 <#return originalURL?replace(paramName + "=" + rawValueInURL, paramName + "=" + newEncoded) />
122</#function>
123
124<#function buildTranslatedHref originalURL targetLanguageId paramNames matchedItemsCache>
125 <#local resultURL = originalURL />
126
127 <#list paramNames as paramName>
128 <#local resultURL = translateParamInURL(resultURL, paramName, targetLanguageId, matchedItemsCache) />
129 </#list>
130
131 <#return resultURL />
132</#function>
133
134
135<#-- ============================================================ -->
136
137<script>
138 $(document).ready(function () {
139 // Toggle el estado del menu de idiomas
140 $('.select-btn').on('click', function () {
141 var expanded = $(this).attr('aria-expanded') === 'true';
142 $(this).attr('aria-expanded', !expanded);
143 $('.options').toggleClass('hide', expanded);
144 });
145
146 // Acciones de teclado para la lupa
147 $('.select-btn').on('keydown', function (e) {
148 if (e.key === 'Enter' || e.key === ' ') {
149 e.preventDefault(); // Evitar desplazamiento al presionar espacio
150 $(this).click(); // Simula el click para abrir/cerrar el menu
151 }
152 });
153
154 // Cerrar el menu al hacer clic en cualquier parte fuera de el
155 $(document).on('click', function (event) {
156 if (!$(event.target).closest('.select-btn, .options').length) {
157 $('.options').addClass('hide');
158 $('.select-btn').attr('aria-expanded', 'false');
159 }
160 });
161
162 // Navegar con las teclas de flecha
163 let options = $('.option');
164 let selectedIndex = 0;
165
166 options.on('keydown', function (e) {
167 if (e.key === 'ArrowDown') {
168 selectedIndex = (selectedIndex + 1) % options.length;
169 options.eq(selectedIndex).focus();
170 }
171 if (e.key === 'ArrowUp') {
172 selectedIndex = (selectedIndex - 1 + options.length) % options.length;
173 options.eq(selectedIndex).focus();
174 }
175 if (e.key === 'Enter') {
176 window.location.href = $(this).find('a').attr('href'); // Redirige a la opcion seleccionada
177 }
178 });
179 });
180</script>
El producto se ha añadido a la cesta de la compra
-50% de descuento*
Si compras la misma norma UNE en distintos idiomas.
*
Dto. sobre el pvp inferior.
Ver condiciones
IEC 60512-15-5:2008
Connectors for electronic equipment - Tests and measurements - Part 15-5: Connector tests (mechanical) - Test 15e: Contact retention in insert, cable nutation
Loading...
| Fecha edición: |
2008-05-09
En Vigor
|
|---|---|
| Idiomas disponibles: | Inglés, Francés |
| ICS: | 31.220.10 - Dispositivos de bases y clavijas. Conectores |
| CTN: | 1373 |
|
Reemplazo Normas |
Reemplazada parcialmente a IEC 60512-8:1993 |
Please enter a valid video URL.
The URL can point to any video file or a Youtube video.
El libro en palabras del autor
Ultricies magna feugiat malesuada sociosqu varius vivamus cubilia parturient, himenaeos vitae vehicula nam placerat netus urna platea, nostra rutrum felis mattis penatibus velit quisque.
ButtonNormas citadas
Libros relacionados
Normas relacionadas
Colecciones temáticas relacionadas
Preguntas frecuentes
¿Tienes alguna duda sobre nuestros productos?
Respuesta 2
Desde la web
Libros y normas










