gpt4 book ai didi

java - 将 Javascript 代码写入来自 Controller 的 HTTP 响应

转载 作者:行者123 更新时间:2023-12-02 02:52:50 27 4
gpt4 key购买 nike

在 Struts 应用程序中,一些 Controller 将 Javascript 代码写入 HTTP 响应(此 JS 代码将在提交结束时执行)。您认为这是一个不好的方法还是可以接受的?设置一个属性并将 JS 代码移动到 View 中会更好吗?

@UserInterfaceEvent
public void aceptar_onClick(FormActionContext ctx) {

IGenerateDocListOutputBF bproxy = ProxyFactory.newBusinessProxy(getBusinessComponent(), IGenerateDocListOutputBF.class);

GenerateDocListOutputForm form = (GenerateDocListOutputForm) ctx.form();
String mode = form.getDetailMode();
removeErrors(ctx);

GemaBrowseControl browse = (GemaBrowseControl) ctx.session().getAttribute("outputs");
SelectedData data = browse.getAllSelectedData(ctx, true);

try {
bproxy.generateOutputs(data.getSelectedDboids(), form.getDboid(), false);
if (GemaAppErrorMgr.currentScopeHasErrors()) {
ctx.request().setAttribute(DetailRequest.MODE, mode);
showErrorPopUp(ctx);
} else {
String javascript = "<script>window.opener.refreshDivDocsRelated(); window.close();</script>";
ctx.response().getOutputStream().print(javascript);
ctx.forwardToResponse();
}
} catch (Exception e) {
handleException(e, ctx.request());
}
}

最佳答案

我认为这是非常糟糕的做法。混合业务逻辑和表示层不仅会使其更难理解(如果后端开发人员根本不懂 JS 怎么办?),更重要的是,它会让调试变得更困难,尤其是在大型项目中人们在不断变化,而这些知识会在过程中丢失。

我将实现一个 AJAX 调用并在请求完成时执行该 JS(在 c 的 View 端)。

关于java - 将 Javascript 代码写入来自 Controller 的 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43544590/

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