Alhazred
28-07-2008, 11.30.09
Ho una pagina JSP con un form che funziona correttamente.
Vorrei che un'altra pagina JSP, contenente a sua volta un altro form funzionante, utilizzasse tale form includendo la JSP dove è definito.
Riesco ad includere la JSP con il form (piuttosto banale), ma il form non fa il suo dovere.
Ho idea che il problema sia nel fatto che non sia possibile gestire un form da una pagina diversa da quella in cui è definito a meno di qualche tecnica particolare che non conosco.
Vi propongo il codice che ho scritto, sapete darmi qualche dritta per risolvere il problema?
Pagina con il suo form all'inizio e il form incluso sotto.
<%@ page language="java" contentType="text/html; charset=iso-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="controller.MagController" %>
<%!
static final String[][] TABS = {
{"A","showingrediente.jsp"},
{"B","showingrediente.jsp"},
{"C","showingrediente.jsp"}
<!-- gù fino alla Z -->
}; %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Modifica soglia</title>
<% int soglia_scadenza = MagController.getSoglia(); %>
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkSogliaScadenza(obj) {
//permette solo numeri
scadenza = obj.value.replace(/\D/g,"");
obj.value = scadenza;
}
function checkFormScadenza(obj) {
if(document.modsoglia.scadenza.value <= 0) {
alert("La soglia di scadenza deve essere un intero maggiore di 1");
document.modsoglia.scadenza.value = "";
document.modsoglia.scadenza.focus();
return false;
}
return true;
}
//-->
</script>
</head>
<body>
<center>
<h2>Modifica valori di soglia</h2>
<br><br>
Modifica soglia di scadenza
<form name="modsoglia" action="ModificaScadenza" method="post">
<table width="300" border="0" cellpadding="6">
<tr>
<td width="65%">Soglia per date di scadenza</td>
<td width="35%"> <%= soglia_scadenza %> giorni</td>
</tr>
<tr>
<td>Nuovo valore di soglia</td>
<td><input type="text" name="scadenza" size="3" onChange="checkSogliaScadenza(this)" /> giorni</td>
</tr>
<tr>
<td><%if (session.getAttribute("esito_scadenza") != null)
if (session.getAttribute("esito_scadenza").equals("non_modificata")) {%>
<font color="red">Soglia non modificata!</font> <% } %></td>
<td><input type="submit" name="modsoglia" value="Modifica" onClick="return checkFormScadenza(this)"/></td>
</tr>
</table>
</form>
<br><br><br>
Modifica soglia rimanenze<br>
<form>
<%String which = request.getParameter("which");
if (which==null)
which = TABS[0][0];
String jspToRun = null;
for (int i=0; i<TABS.length; i++) {
String tabLabel = TABS[i][0];
String tabJSP = TABS[i][1];
String CHECKED = "";
if (which.equals(tabLabel)) {
CHECKED = "CHECKED";
jspToRun = tabJSP;
}
%>
<input name="which" type="radio" value="<%=tabLabel %>" <%= CHECKED %> onClick="this.form.submit()" /><%= tabLabel %>
<%
if (i==12) {%>
<br>
<% }
} %>
<p>
<jsp:include page="<%= jspToRun %>" flush="true" />
</p>
</form>
<br><br><br><br>
<a href="hpmagazziniere.html">Home page</a>
</center>
</body>
</html>
Pagina col form da includere nella precedente:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="controller.IngrController" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mostra ingredienti per lettera</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
function selezionato(obj) {
//permette solo numeri
nuovaSoglia = obj.value.replace(/\D/g,"");
obj.value = nuovaSoglia;
if(obj.value > 0)
document.modrimanenza.totale_selezionati.value = parseInt(document.modrimanenza.totale_selezionati. value) + 1;
if(obj.value <= 0)
document.modrimanenza.totale_selezionati.value = parseInt(document.modrimanenza.totale_selezionati. value) - 1;
}
//-->
</script>
<%
int i=0;
String lettera = request.getParameter("which");
ResultSet rs = IngrController.getIngrMagPerLettera(lettera);
%>
</head>
<body>
<center>
<form name="modrimanenza" action="ModificaRimanenza" method="post">
<table width="550" cellpadding="2">
<tr>
<td width="25%"><b>Ingrediente</b></td>
<td width="20%"><b>Unità di misura </b></td>
<td width="25%"><div align=center><b>Soglia attuale </b></div></td>
<td width="30%"><b>Nuovo valore di soglia </b></td>
</tr>
<% while (rs.next()) { %>
<tr>
<td><%=rs.getString("Nome") %></td>
<td><div align="center"><%=rs.getString("unitaDiMisura") %></div></td>
<td><div align="center"><%=rs.getString("Soglia") %></div></td>
<td><input type="text" name="ingrediente<%= i %>value" size="3" onChange="selezionato(this)"/>
<input type="hidden" name="ingrediente<%= i %>name" value="<%=rs.getString("Nome") %>" /></td>
</tr>
<% i++;
} %>
<tr>
<td> </td>
<td> </td>
<td><input type="hidden" name="totale_selezionati" value="0"/> </td>
<td><input type="submit" name="modifica" value="Modifica" /></td>
</tr>
</table>
</form>
</center>
</body>
</html>
Vorrei che un'altra pagina JSP, contenente a sua volta un altro form funzionante, utilizzasse tale form includendo la JSP dove è definito.
Riesco ad includere la JSP con il form (piuttosto banale), ma il form non fa il suo dovere.
Ho idea che il problema sia nel fatto che non sia possibile gestire un form da una pagina diversa da quella in cui è definito a meno di qualche tecnica particolare che non conosco.
Vi propongo il codice che ho scritto, sapete darmi qualche dritta per risolvere il problema?
Pagina con il suo form all'inizio e il form incluso sotto.
<%@ page language="java" contentType="text/html; charset=iso-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="controller.MagController" %>
<%!
static final String[][] TABS = {
{"A","showingrediente.jsp"},
{"B","showingrediente.jsp"},
{"C","showingrediente.jsp"}
<!-- gù fino alla Z -->
}; %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Modifica soglia</title>
<% int soglia_scadenza = MagController.getSoglia(); %>
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkSogliaScadenza(obj) {
//permette solo numeri
scadenza = obj.value.replace(/\D/g,"");
obj.value = scadenza;
}
function checkFormScadenza(obj) {
if(document.modsoglia.scadenza.value <= 0) {
alert("La soglia di scadenza deve essere un intero maggiore di 1");
document.modsoglia.scadenza.value = "";
document.modsoglia.scadenza.focus();
return false;
}
return true;
}
//-->
</script>
</head>
<body>
<center>
<h2>Modifica valori di soglia</h2>
<br><br>
Modifica soglia di scadenza
<form name="modsoglia" action="ModificaScadenza" method="post">
<table width="300" border="0" cellpadding="6">
<tr>
<td width="65%">Soglia per date di scadenza</td>
<td width="35%"> <%= soglia_scadenza %> giorni</td>
</tr>
<tr>
<td>Nuovo valore di soglia</td>
<td><input type="text" name="scadenza" size="3" onChange="checkSogliaScadenza(this)" /> giorni</td>
</tr>
<tr>
<td><%if (session.getAttribute("esito_scadenza") != null)
if (session.getAttribute("esito_scadenza").equals("non_modificata")) {%>
<font color="red">Soglia non modificata!</font> <% } %></td>
<td><input type="submit" name="modsoglia" value="Modifica" onClick="return checkFormScadenza(this)"/></td>
</tr>
</table>
</form>
<br><br><br>
Modifica soglia rimanenze<br>
<form>
<%String which = request.getParameter("which");
if (which==null)
which = TABS[0][0];
String jspToRun = null;
for (int i=0; i<TABS.length; i++) {
String tabLabel = TABS[i][0];
String tabJSP = TABS[i][1];
String CHECKED = "";
if (which.equals(tabLabel)) {
CHECKED = "CHECKED";
jspToRun = tabJSP;
}
%>
<input name="which" type="radio" value="<%=tabLabel %>" <%= CHECKED %> onClick="this.form.submit()" /><%= tabLabel %>
<%
if (i==12) {%>
<br>
<% }
} %>
<p>
<jsp:include page="<%= jspToRun %>" flush="true" />
</p>
</form>
<br><br><br><br>
<a href="hpmagazziniere.html">Home page</a>
</center>
</body>
</html>
Pagina col form da includere nella precedente:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="controller.IngrController" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mostra ingredienti per lettera</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
function selezionato(obj) {
//permette solo numeri
nuovaSoglia = obj.value.replace(/\D/g,"");
obj.value = nuovaSoglia;
if(obj.value > 0)
document.modrimanenza.totale_selezionati.value = parseInt(document.modrimanenza.totale_selezionati. value) + 1;
if(obj.value <= 0)
document.modrimanenza.totale_selezionati.value = parseInt(document.modrimanenza.totale_selezionati. value) - 1;
}
//-->
</script>
<%
int i=0;
String lettera = request.getParameter("which");
ResultSet rs = IngrController.getIngrMagPerLettera(lettera);
%>
</head>
<body>
<center>
<form name="modrimanenza" action="ModificaRimanenza" method="post">
<table width="550" cellpadding="2">
<tr>
<td width="25%"><b>Ingrediente</b></td>
<td width="20%"><b>Unità di misura </b></td>
<td width="25%"><div align=center><b>Soglia attuale </b></div></td>
<td width="30%"><b>Nuovo valore di soglia </b></td>
</tr>
<% while (rs.next()) { %>
<tr>
<td><%=rs.getString("Nome") %></td>
<td><div align="center"><%=rs.getString("unitaDiMisura") %></div></td>
<td><div align="center"><%=rs.getString("Soglia") %></div></td>
<td><input type="text" name="ingrediente<%= i %>value" size="3" onChange="selezionato(this)"/>
<input type="hidden" name="ingrediente<%= i %>name" value="<%=rs.getString("Nome") %>" /></td>
</tr>
<% i++;
} %>
<tr>
<td> </td>
<td> </td>
<td><input type="hidden" name="totale_selezionati" value="0"/> </td>
<td><input type="submit" name="modifica" value="Modifica" /></td>
</tr>
</table>
</form>
</center>
</body>
</html>