如何从textarea获取文本并将其作为URL参数发送

时间:2018-07-09 14:12:13

标签: java html jsp

我想从textarea中获取文本并将其作为参数发送给表单操作。

因此,我有showarticle.jsp页面,该页面显示了我所有文章的评论。首先,我在index.jsp上使用参数comment_ref = null调用它(这意味着我不想第一次添加评论)

<a href="showarticle.jsp?id=${row.id}&comment_ref=null">${row.title}</a>

在showarticle.jsp中,我有一个用于添加新评论的表单

<form action="showarticle.jsp?id=${id_param}&comment_ref=${comment_text_aria_cur}" method="post">
  <textarea name="comment_text_aria_cur" rows="4" cols="50"></textarea>
  <input type="submit" name ="submit" value="Send">
</form>

在这里我再次调用showarticle.jsp,但是在这里我想从文本区域添加文本作为参数comment_ref。

我已经尝试过

<form action="showarticle.jsp?id=${id_param}&comment_ref="<%=request.getParameter("comment_text_aria_cur") method="post">

但仍然无法正常工作。在这种情况下,我只能看到以前的值。例如,

我写评论“ aaa”,然后按提交-> comment_ref = null。 我写评论“ bbb”,然后按提交-> comment_ref = aaa。

我确定解决方案非常简单。谢谢!

2 个答案:

答案 0 :(得分:0)

首先将method =“ post”更改为method =“ get”。通常,Post不允许通过url发送值(但是,您仍然可以使用javascript实现querystring)。对于post,这些值以内容类型指定的格式(主要是application / x-www-form-urlencoded)在请求正文中发送。

将帖子更改为获取后,提交表单时,值将自动附加到url上。您无需显式附加。

request.getParameter用于获取表单参数的值,即从url请求中获取参数的值。您不能使用它来附加值。

这是简单的方法。

<form action="showarticle.jsp" method="GET">
     <textarea name="comment_text_aria_cur" rows="4" cols="50"></textarea>
     <input type="hidden" name ="id" value="<%= request.getParameter("id_param")%>">
     <input type="submit" name ="submit" value="Send">
</form>

确保您正在设置id_param(request.setAttribute(“ id_param”,值) )

答案 1 :(得分:0)

通常,您应该将注释数据作为post参数而不是querystring参数传递。因此,您的代码应如下所示:

<form action="showarticle.jsp?id=${id_param}" method="post">
  <textarea name="comment_text_aria_cur" rows="4" cols="50"></textarea>
  <input type="submit" name ="submit" value="Send">
</form>

然后,从目标页面showarticle.jsp,您应该可以调用:

<% request.getParameter("comment_text_aria_cur") %>

当然,这将返回上次请求提交到当前页面的值。它可用于处理和/或查看先前提交的注释的值。另一方面,应该将其用于下一个请求的表单操作字符串格式。


但是,如果您在提交表单时坚持使用某些数据来更改查询字符串,则可以使用javascript执行以下操作:

<html>
<body>
<form name="myForm" onsubmit="submitForm();" action="showarticle.jsp" method="post">
  <input type="text" name="id" />
  <textarea name="comment_text_aria_cur" rows="4" cols="50"></textarea>
  <input type="submit" name ="submit" value="Send">
</form>

<script>
function submitForm() {
    form = document.forms["myForm"];
    form.action = form.action+"?id="+form["id"].value+"&comment_ref="+form["comment_text_aria_cur"].value;
    return true;
}
</script>
</body>
</html>

这包括:

  1. 为您的表单命名,以便您可以通过javascript访问它
  2. 提供提交表单时要执行的onsubmit方法
  3. 在javascript事件方法中,您可以获取参数的值并使用所需的querystring参数格式化新的操作字符串
  4. 将新字符串设置为表单操作