0

私は不安定な状況にあります!2 つのフレームを持つ html ページがあります。

1. xmldiff.html

<html>
 <head>
  <title>XML Diff</title>
</head>
<form name="xmldiff" method="post">
 <frameset rows="50%,50%">
   <frame name="left" src="XML1.jsp">
   <frame name="bottom" src="XML2.jsp">
 </frameset>
</html>

2. XML1.jsp

<form name="xml1">
XML 1:<br />
  <textarea name="xml1text" id="comments" style="width:100%;background-color:#D0F18F;" rows="50">
  Text Area 1!
  </textarea><br />
</form>

3. XML2.jsp

<script language="javascript" type="text/javascript">
function mysubmit()
{
document.xml3.text1.value=window.parent.left.xml1.xml1text.value;
}
</script>
<form name="xml2" action="/servlet/XMLDiffServlet" method="post" onSubmit="mysubmit()> 
Difference:<br />
  <textarea name="result" id="comments" style="width:100%;background-color:#D0F18F;" rows="22">${result}</textarea>
  <br />
  <input type="submit" value="Submit"/>
  <input type="hidden" name="text1" value="hello" />
</form>

そして、サーブレット XMLDiffServlet では、次のコードで隠しボタン text1 の値を取得しようとしています -

public void doPost(HttpServletRequest req, HttpServletResponse resp)
{
    String origXML=req.getParameter("text1");

    req.setAttribute("result",origXML);
    String nextJSP = "/XML2.jsp";
    RequestDispatcher rd = getServletContext().getRequestDispatcher(nextJSP);
    rd.forward(req, resp);
} 

したがって、基本的には、非表示のボタンの値を渡して、結果のテキストエリアに表示しようとしています。XML2.jsp を使用すると、値をサーブレットに渡すことができませんが、${result} を使用してサーブレットから任意の文字列を取得できます。一方、(コードを変更せずに) XML2.jsp を XML2.html に名前変更するだけで、隠しボタンの値をサーブレットに渡すことはできますが、そこから取得することはできません。

では、jsp を使用して両端を満たすにはどうすればよいでしょうか? 値を渡し、取得します。request.getParameter が jsp ではなく html から機能するのはなぜですか? これがうまく機能している例はたくさんありますが、なぜここでうまくいかないのでしょうか? 送信ボタンにも onClick 呼び出しを作成しましたが、それも機能しませんでした。私は本当に困惑しています - 助けてもらえますか?

ありがとうございます

4

1 に答える 1

-1

onSubmit のように使用する必要があります

function mysubmit()
{
   document.xml3.text1.value=window.parent.left.xml1.xml1text.value;
   return true;
}

そして形で

<form name="xml2" action="/servlet/XMLDiffServlet" method="post" onSubmit="return mysubmit()">
于 2013-10-16T12:37:57.023 に答える