一个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>
    &nbsp;
     <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>

解决方案 »

  1.   

    不太明白楼主意思。。
    用不同的Action不就可以传值给不同页面么?
      

  2.   

    不同的form对应不同的action
    有多个表单form就相当与对应了多个不同action楼主是要取到所有表单的值
    然后到一个action里面去处理吗??这是不可能的楼主表达的意思不清
      

  3.   

    不好意思。
    我的意思是要取到这个页面中的所有值,然后在一个action 中进行处理。
      

  4.   

    我要显示的内容必须在一个页面,然后要在一个action中取得这个页面的所有输入值进行相应的处理。
    所以3楼所说的分页方法不可行。
      

  5.   

    如果说,你想取到这个页面中的所有值,然后在一个action 中进行处理,
    那上面你说的两种方法:
    一是:在一个页面中有多个表单
    二是:在表单中嵌套表单来处理
    的思路都是不可行的。既然你说是:
    交由同一个action来处理并且显示的内容必须在一个页面解决方法:
    把上面的表单要输入的数据全部在一个表单中提交,你可以使用格式来控制
      

  6.   

    我想LZ的意思是这个页面已经有了几个表单,但现在需要把此页面所有数据都提交到另一个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的要求,缺点是每次提交都会提交了所有的数据;
      

  7.   

    上面可能没说清楚,现在整理一下:
    <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>
      

  8.   

    楼主能说清楚点   具体是哪些值取不到吗 
       还有你iframe中都是些什么东西
      

  9.   

    action本来就是做页面调度的,一个action返回一个页面.
    所以你的数据最后是有一个action里取的,那你页面上数据就要一次性注入到一个action里
    整合到同一个from里吧,这有什么难处吗?
      

  10.   

    同意7楼的意见
    要不就是安个跳转按钮,跳到3.jsp上,把1.jsp中所有属性都复制过来,只用一个action来处理。   
      

  11.   

    up
    <form action="" method="POST">
      

  12.   

    太长了,没看
    既然要用一个页面处理,为什么不能合并成一个form
      

  13.   

    同意7楼意见,
    LZ需要什么值,完全可以放在1个FORM里面。
      

  14.   


    楼主考虑一下用Ajax吧,
    应该可以解决这个问题
      

  15.   

    是啊  楼主要是想在一页面里包含多个表单 让一个Action进行处理 恐怕 无法实现! 
      

  16.   

    12楼的,我要全部提交到一个action中不是分开的action中。现在把三个表单合并到两个表单了,还是有些问题。
      

  17.   

    可以通过js进行form提交,window.form['form1'].submit();
      

  18.   

    用js遍历所有form 并将该表单值拼接成字符串,然后在action把值拿到并解析出来.