Redondeando en Java
Si os habéis encontrado alguna vez con la necesidad de redondear un número en Java, habréis visto que no existe un método directo para hacerlo
A veces se hace multiplicando pasando a entero y dividiendo, pero no es una forma fiable.
La forma de hacerlo sería mediante el método setScale de la clase java.math.BigDecimal:
public static double round(double value, int decimalDigits) {
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(decimalDigits, BigDecimal.ROUND_HALF_UP);
return bd.doubleValue();
}
Tenemos varias opciones a la hora de redondear que podemos ver en la documentación de BigDecimal.
Espero que os ayude.
Add comment 27 Febrero 2010
Alerta de contenido no seguro en Internet Explorer
Estábamos desplegando una aplicación en un servidor seguro y al probar con Internet Explorer recibíamos en todas las páginas el siguiente mensaje.
Este mensaje indica que en la respuesta a nuestra petición segura https se acceden algunas partes mediante el protocolo no seguro http. Esto es un riesgo de seguridad y por eso nos alerta.
Tras varias pruebas intentando localizar el contenido no seguro di con una gran entrada de Eric Lawrence sobre el tema del contenido no seguro (
en inglés) que me ayudó a solucionar el problema.
Por un lado desde el punto de vista del navegador podemos hacer que no nos aparezca la ventanita. Evidentemente no es la solución óptima el obligar a que el navegador no nos muestre un aviso de seguridad, pero para un aprieto (una demo por ejemplo) nos puede ayudar. Para ello abrimos las opciones del navegador (“Herramientas->Opciones de Internet”) y vamos a la pestaña de “Seguridad”. En la parte de “Internet” pulsamos “Nivel personalizado…” y buscamos la opción de “Mostrar contenido mixto”. Cambiamos de “Preguntar” a “Habilitar”.
Como desarrolladores debemos preocuparnos de que si nuestra aplicación va a ejecutarse bajo https nuestras páginas no llamen a contenido no cifrado. Para descubrir si hacemos peticiones http podemos utilizar el Web Developer para Firefox o una buena herramienta que también descubrí gracias al post mencionado anteriormente como es Fiddler.
En nuestro caso y tras ver que no hacíamos ninguna llamada http descubrimos que lo que ocurría es la posibilidad que señala Eric en su sitio. Parece ser que Internet Explorer marca como contenido no seguro una llamada a JavaScript del estilo:
<br />
<script type="text/javascript" id="contentloadtag" src="javascript:void(0)" ><br />
Con eliminar el parámetro src se solucionará el problema. Una de las librerías JavaScript que utilizábamos tenía una llamada de ese tipo.
Espero que os sea útil.
1 comment 15 Enero 2010
Error en la comparación de String con la librería de tags de Struts2
Os voy a comentar un pequeño error que nos puede descolocar un poco cuando tratamos de comparar cadenas mediante la librería de etiquetas de Struts2 en nuestras páginas JSP.
Si hacemos una comparación con Strings al estilo de:
<s:if test="propiedad == 'SI'"> <div>Mostrar texto</div> </s:if>
obtendremos el resultado esperado (mostrará el texto si nuestra propiedad vale “SI”), pero si la comparación es:
<s:if test="propiedad == 'S'"> <div>Mostrar texto</div> </s:if>
veremos que aunque nuestra propiedad valga “S” no aparece el texto. Es decir, que cuando hacemos comparaciones de Strings de un sólo carácter nos falla. La responsable es la librería OGNL que evalúa las expresiones ya que al encontrar se un sólo carácter lo toma como un tipo Char y no un String.
Para solucionarlo nos basta cambiar las comillas:
<s:if test='propiedad == "S"> <div>Mostrar texto</div> </s:if>
o bien escapar las comillas dobles:
<s:if test="propiedad == \"S\""> <div>Mostrar texto</div> </s:if>
Espero que le pueda servir a alguien.
2 comments 17 Diciembre 2009






