No me había fijado en como hacías el show(), si quieres ocultar uno y mostar otro, ¿para qué haces una comprobación de en qué estado está cada uno?¿Lo que buscas no es que aparezca uno u otro?
Te recomiendo que en vez del visibility uses el display, así no queda el hueco del formulario no visible.
Código Javascript
:
Ver original<head>
<script>
formu = '<s:property value="formulario">';
function Inicio() {
if (formu=='formulario1')
show1();
else if (formu=='formulario2')
show2();
}
function show1(){
document.getElementById("formulario2").style.display="none";
document.getElementById("formulario1").style.display="";
}
function show2(){
document.getElementById("formulario1").style.display="none";
document.getElementById("formulario2").style.display="";
}
</script>
</head>
<body onload="Inicio();">
<div id="formulario1" style="display:none">
<div id="formulario2" style="display:none">
Puedes probar que esto funciona en un html cualquiera, sin usar struts. Bueno, también cambiarías <s:property value="formulario"> por formulario1/formulario2/undefined para simular los regresos de la action.
Para usar javascript sobre elementos HTML, te recomiendo que leas un poco de jQuery, es muy sencillo y te ahorra trabajo.