首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JS从textarea获取值并将其传递给服务器,而无需重新加载页面(jsp)

使用JS从textarea获取值并将其传递给服务器,而无需重新加载页面(jsp)
EN

Stack Overflow用户
提问于 2018-06-27 02:56:58
回答 1查看 468关注 0票数 0

我使用这段代码向我的JSP页面显示一个TextArea,在onclick事件之后有一个按钮调用两个函数。

代码语言:javascript
复制
<textarea id="textarea"></textarea>

<button style="float: right;" onclick="jQuery('#reDiv').load(' #reDiv'); doSth();">Get Text</button>

功能1:

代码语言:javascript
复制
<div id="reDiv"><%=new java.util.Date().toString()%></div>

功能2:

代码语言:javascript
复制
<script>
function doSth() {
var text = $("#textarea").val(); //value of textarea
<%=text%> //error
}
</script>

函数1工作正常。

在函数2中,我尝试将刚刚从TextArea获得的值传递给我的服务器,而不重新加载页面。我稍后的目标是调用一个方法并在不刷新页面的情况下显示数据

我知道错误是JS是客户端,而是服务器端。但是我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-27 03:17:17

在你的jsp中使用scriptlet(这些东西是<% %>)是非常糟糕的做法。它被ELJSTL所取代。

但是,是的,服务器在您的jsp页面中运行java,然后才将其发送到客户端。并且在java已经被执行之后,javascript在客户机侧运行。最重要的是,你不能用scriptlet直接访问javascript变量。不过,您也可以反过来做,但在这种情况下,它对您没有用处。

您提到过,您希望在不重新加载页面的情况下将值从文本区域传递到服务器。这就是AJAX的用途。

代码语言:javascript
复制
<script>
function doSth() {
var text = $("#textarea").val(); //value of textarea
//<%=text%> //error
sendToServer(text);
}

function sendToServer(text){

  var params = {
      textarea: text
  };
  $.post("YourServletUrl", $.param(params), function(response) {
      // ... handle response here if you have any..
  });     

}
</script>

然后,在servlet的doPost方法中,您只需执行以下操作:

代码语言:javascript
复制
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {

        String textarea= request.getParameter("textarea");

        System.out.println(textarea);

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51049747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档