一个jsp(1.jsp)页面中包含有多个表单,这些表单都不能合并,请问下应该怎么提交给servlet或者是提交给另一个jsp页面进行处理。最主要是怎么样才能取到1.jsp这个页面所有输入的值?我使用表单嵌套表单取不到相应的值。高手快来帮帮忙,先谢了。
代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'add.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script language="javascript">
function subchk() //
{
if(document.getElementById("title").value=="")
{
alert("");
return false;
}
if((window.eWebEditor1.getHTML())!="")
{
document.form1.content1.value= window.eWebEditor1.getHTML();
}else{
alert("");
return false;
}
document.form1.submit();
document.form2.submit();
}
</script>
</head>
<body>
<form id="form2" name="form2" method="post" action="servlet/Add">
<table width="100%" height="20%" border="1" align="center"
cellspacing="0" cellpadding="0" bordercolor="#0099FF"
bordercolordark="#FFFFFF">
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td >
<
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td>
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td align="left">
<FORM METHOD="POST" ACTION="SystemSet/uploadok.jsp"
ENCTYPE="multipart/form-data" >
<input type="hidden" name="test" value="good">
<table width="100%" height="100%" border="0" cellspacing="0" align="left" cellpadding="0">
<tr align="left" vlign="middle">
<td width="10%"><div align="right">
<input type="FILE" name="FILE1" size="35">
</div>
</td>
<td align="left"><div align="left">
<input type="submit" name="Submit" value="上传" style="height=21px;" >
</div>
</td>
</tr>
</table>
</FORM>
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td >
<input type="text" name="author" id="author" style="width=170px;"/>
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td >
<textarea name="about" id="about" cols="50" rows="4"></textarea>
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td>
<form name="form1">
<TABLE border="0" cellpadding="2" cellspacing="1">
<TR>
<TD colspan=2>
<textarea name="content1" id="content1" style=display:none></textarea>
<IFRAME ID="eWebEditor1" src="../eWebEditor/eWebEditor.jsp?id=content1&style=standard" frameborder="0" scrolling="no" width="650" height="350"></IFRAME>
<font color="red">*</font>
</TD>
</TR>
<TR>
<TD colspan=2 align="right">
<INPUT type="button" name=b1 value="提交" onclick="subchk()">
<INPUT type=reset name=b2 value="重填">
<input type="button" name="button2" id="button2" value="返回"
class="defaultButton" onclick="history.back()" />
</TD>
</TR>
</TABLE>
</form>
</td>
</tr>
</table>
</form>
</body></html>
代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'add.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script language="javascript">
function subchk() //
{
if(document.getElementById("title").value=="")
{
alert("");
return false;
}
if((window.eWebEditor1.getHTML())!="")
{
document.form1.content1.value= window.eWebEditor1.getHTML();
}else{
alert("");
return false;
}
document.form1.submit();
document.form2.submit();
}
</script>
</head>
<body>
<form id="form2" name="form2" method="post" action="servlet/Add">
<table width="100%" height="20%" border="1" align="center"
cellspacing="0" cellpadding="0" bordercolor="#0099FF"
bordercolordark="#FFFFFF">
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td >
<
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td>
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td align="left">
<FORM METHOD="POST" ACTION="SystemSet/uploadok.jsp"
ENCTYPE="multipart/form-data" >
<input type="hidden" name="test" value="good">
<table width="100%" height="100%" border="0" cellspacing="0" align="left" cellpadding="0">
<tr align="left" vlign="middle">
<td width="10%"><div align="right">
<input type="FILE" name="FILE1" size="35">
</div>
</td>
<td align="left"><div align="left">
<input type="submit" name="Submit" value="上传" style="height=21px;" >
</div>
</td>
</tr>
</table>
</FORM>
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td >
<input type="text" name="author" id="author" style="width=170px;"/>
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td >
<textarea name="about" id="about" cols="50" rows="4"></textarea>
</td>
</tr>
<tr>
<td align="left" bgcolor="#CCCCCC">
</td>
<td>
<form name="form1">
<TABLE border="0" cellpadding="2" cellspacing="1">
<TR>
<TD colspan=2>
<textarea name="content1" id="content1" style=display:none></textarea>
<IFRAME ID="eWebEditor1" src="../eWebEditor/eWebEditor.jsp?id=content1&style=standard" frameborder="0" scrolling="no" width="650" height="350"></IFRAME>
<font color="red">*</font>
</TD>
</TR>
<TR>
<TD colspan=2 align="right">
<INPUT type="button" name=b1 value="提交" onclick="subchk()">
<INPUT type=reset name=b2 value="重填">
<input type="button" name="button2" id="button2" value="返回"
class="defaultButton" onclick="history.back()" />
</TD>
</TR>
</TABLE>
</form>
</td>
</tr>
</table>
</form>
</body></html>
用不同的Action不就可以传值给不同页面么?
有多个表单form就相当与对应了多个不同action楼主是要取到所有表单的值
然后到一个action里面去处理吗??这是不可能的楼主表达的意思不清
我的意思是要取到这个页面中的所有值,然后在一个action 中进行处理。
所以3楼所说的分页方法不可行。
那上面你说的两种方法:
一是:在一个页面中有多个表单
二是:在表单中嵌套表单来处理
的思路都是不可行的。既然你说是:
交由同一个action来处理并且显示的内容必须在一个页面解决方法:
把上面的表单要输入的数据全部在一个表单中提交,你可以使用格式来控制
假如是这样的话,可以用JS来处理:
<script>
function submitOperation(operation)
{
document.forms[0].action = operation+".action";
document.forms[0].submit();
}
</script>
<form method="post">
<img src="" onclick="submitOperation('[提交的ACTION名字]');" />
</form>
所有的表单共用这一个form,然后提交的时候调用submitOperation函数,用来判断具体提交到哪个ACTION;这样就页面可以有多个表单并满足LZ的要求,缺点是每次提交都会提交了所有的数据;
<script>
function submitOperation(operation)
{
document.forms[0].action = operation+".action";
document.forms[0].submit();
}
</script>
<form method="post"> //所用要提交的数据共用这一个表单<input type="text" name="1"> //需要提交到Action1处理的信息
<img src="button1" onclick="submitOperation('Action1');" /> <input type="text" name="2"> //需要提交到Action2处理的信息
<img src="button2" onclick="submitOperation('Action2');" /> <input type="text" name="3"> //需要全部提交信息
<img src="button3" onclick="submitOperation('Action3');" /> </form>
还有你iframe中都是些什么东西
所以你的数据最后是有一个action里取的,那你页面上数据就要一次性注入到一个action里
整合到同一个from里吧,这有什么难处吗?
要不就是安个跳转按钮,跳到3.jsp上,把1.jsp中所有属性都复制过来,只用一个action来处理。
<form action="" method="POST">
既然要用一个页面处理,为什么不能合并成一个form
LZ需要什么值,完全可以放在1个FORM里面。
楼主考虑一下用Ajax吧,
应该可以解决这个问题