lineas de html en jsp

Gabriel
20 de Octubre del 2003
Que tal:

Ahora si yo creo que esto va a resolver mis dudas sobre jsp.

Supongamos que tengo ese jsp
------------------------------------------------------------------------------------------------------------------------------------------------------
<html>
<head>
<title>Prueba JSP</title>
</head>
<body>
<%
int bandera;
bandera=1;
if (bandera==2)
{
%>
<h1>bandera es 2</h1>
<%
}
else
{
%>
<h1>bandera es 1</h1>
<%
}
%>
<% mostrarLinea(); %>
</body>
</html>
<%!
void mostrarLinea()
{
int valorVariable;
valorVariable=1;
if(valorVariable==2)
{
%>
<h1>variable es 2</h1>
<%!
}
else
{
%>
<h1>variable es 1</h1>
<%!
}
}
%>
------------------------------------------------------------------------------------------------------------------------------------------------------
Esto es lo que despliega el browser
------------------------------------------------------------------------------------------------------------------------------------------------------
bandera es 1
variable es 2
variable es 1
------------------------------------------------------------------------------------------------------------------------------------------------------
y si desde el browser veo el código fuente esto es lo
que me despliega
------------------------------------------------------------------------------------------------------------------------------------------------------
<html>
<head>
<title>Prueba JSP</title>
</head>
<body>
<h1>bandera es 1</h1>
</body>
</html>

<h1>variable es 2</h1>

<h1>variable es 1</h1>
------------------------------------------------------------------------------------------------------------------------------------------------------
primera pregunta
¿por qué la primera estructura if si funciona, pero la estructura if de la función “mostrarLinea” no? ¿en donde está mi error?
Segunda pregunta
¿por qué las lineas que tiene que mostrar la función “mostrarLinea” están después de la etiqueta </html>? Pues yo estoy llamando esta función antes de la etiqueta </body>.

Gracias por todo.

concorde
20 de Octubre del 2003
En una definición de función no puedes mezclar código java con html, debes incluir el código html con out.println(). Los dos errores proceden de ahí.