【问题标题】:jsp to servlet request.getParameter not workingjsp到servlet request.getParameter不起作用
【发布时间】:2013-10-16 12:19:44
【问题描述】:

我的处境岌岌可危!我有一个带有两个框架的 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>

在 servlet 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,我无法将值传递给 servlet,但我可以使用 ${result} 从 servlet 检索任何字符串。另一方面,如果我只是将 XML2.jsp 重命名为 XML2.html(不更改任何代码),我可以将隐藏按钮的值传递给 servlet,但无法从中检索。

那么我怎样才能使用 jsp 来满足两端 - 既传递值又检索?为什么 request.getParameter 在 html 中工作而不是在 jsp 中工作?有很多例子可以很好地工作,但为什么不在这里呢?我也在提交按钮中创建了 onClick 调用,但是那个东西也不起作用。我真的很困惑 - 你能帮帮我吗?

谢谢 尼玛利亚

【问题讨论】:

  • 那么document.xml3.text1.value中的xml3是什么错字?

标签: jsp servlets


【解决方案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()">

【讨论】:

  • 您好约翰,感谢您的快速回复!但它不起作用。以前我也测试过这段代码,在一个例子中读到 mysubmit() 必须“返回 true”。但令人惊讶的是,这对我不起作用! JSP 无法将值传递给 servlet。
  • 哇!我发现了问题!我的表格就像&lt;form name="xml2" action="/servlet/XMLDiffServlet" method="post" onSubmit="return mysubmit()" enctype='multipart/form-data' &gt;。这 enctype='multipart/form-data' 正在发挥作用。如果它存在,我无法将值传递给 servlet。现在我必须更多地研究它。感谢约翰的回复。 @约翰
猜你喜欢
  • 2023-04-01
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多