gpt4 book ai didi

javascript - 使用 JS 从文本区域获取值并将其传递给服务器(jsp),无需重新加载页面

转载 作者:行者123 更新时间:2023-12-01 01:55:47 28 4
gpt4 key购买 nike

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

<textarea id="textarea"></textarea>

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

功能1:

<div id="reDiv"><%=new java.util.Date().toString()%></div>

功能2:

<script>
function doSth() {
var text = $("#textarea").val(); //value of textarea
<%=text%> //error
}
</script>

函数 1 工作正常。

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

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

最佳答案

在 jsp 中使用 scriptlet 是非常糟糕的做法(这些东西 <% %> )。已替换为 ELJSTL

但是,服务器在将 jsp 页面发送到客户端之前会在您的 jsp 页面中运行 java。 java执行完毕后,javascript在客户端运行。最重要的是,您无法使用 scriptlet 直接访问 javascript 变量。然而,您可以反过来做,但在这种情况下它对您没有用。

您提到您希望将文本区域中的值传递到服务器而不重新加载页面。这就是 AJAX 的用途。

<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 方法中,其 url 映射为 YourServletUrl你只需这样做:

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {

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

System.out.println(textarea);

}

关于javascript - 使用 JS 从文本区域获取值并将其传递给服务器(jsp),无需重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51049747/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com