gpt4 book ai didi

javascript - 如何将数据传递到jsp并从servlet在新窗口中打开它

转载 作者:行者123 更新时间:2023-11-27 23:03:24 25 4
gpt4 key购买 nike

这是我的问题:我有一个 jsp,其中有一个使用数据表的表。它在表的末尾显示一些带有编辑按钮的用户。如果您点击“编辑”按钮,它会调用一个 javascript 函数从表中获取 userID,并通过 ajax $post. 方法将其传递给 servlet。servlet 通过 hibernate 从数据库接收数据并将其映射到对象中。我的代码到目前为止一直有效。现在我想将对象传递给 jsp 并在新窗口中打开它(弹出窗口或内部带有表单的内容,用于使用对象中的数据设置它们以编辑被调用的用户)。

  • 我可以从 servlet 执行此操作吗?或者我必须从 ajax 执行此操作吗?调用成功?

最佳答案

有两种方法可以做到这一点:客户端渲染或服务器端渲染:

1.服务器端

您不需要那个 servlet,您需要的是为输入表单制作第二个 JSP 文件。在 Javascript 中,打开一个包含表单条目 JSP 页面地址的新窗口,并将 userId 参数添加到该页面的查询字符串中:

function onRowClick(userId){
//Open new window with the address: 'formEntry.jsp?userId=' + userId
}

在 formEntry.jsp 中,您可以从请求参数中获取此 ID:

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

然后您可以使用此 userID 来检索您的用户对象:

//get user from dao or service objects
User myUser = someUserService.findUserById(userId);

然后在 JSP 页面中您可以创建输入字段,如下所示:

<input name="firstName" type="String" value="<%= myUser.getFirstName %>"

关于在jsp中使用java代码(注释):您写的是不在 JSP 页面中编写 Java 代码,但为此目的您有 2 个选择:

  • 使用一些服务器端 MVC 框架(例如 JSF)将 View 与模型和 Controller 分开
  • 使用纯 JSP,但不要在 JSP 中使用较低级别的层,仅使用服务层,并且最好使用一些标记库来减少 JSP 中所需的 java 代码


2.客户端

第二种方法是使用更多的 javascript 来处理任务。您可以采用 servlet 方式,让 servlet 返回 User 对象的 JSON 字符串。在 javascript 中,您获取 json 并解析它,并将其字段放入 html 标签中:

function ajaxRequestSuccessHandler(data){
var user = //parse data and make a javascript object
document.getElementById('firstName').value = user.firstName;
....
//load all of data in your form.
}

然后您可以将表单提交到 servlet 并保存更新的数据。

  • 请注意,这种方法适用于 1 或 2 个表单,但如果您正在开发更大的软件,则需要使用更多工具和框架:

1.最好使用 JAX-RS 或 Spring-MVC 来公开 RESTful 服务并在 javascript 中使用主题,而不是使用纯 servlet。

2.更好地利用一些客户端 MV* 框架,如 angularJS 或 ReactJS。

关于javascript - 如何将数据传递到jsp并从servlet在新窗口中打开它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36838665/

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