0
Strutsアプリケーションでは、コントローラによってHTTPレスポンスにJavascriptコードが書き込まれます(このJSコードは、送信が終了すると実行されます)。あなたはそれが悪いアプローチだと思いますか、それとも容認できますか?属性を設定してJSコードをビューに移動する方が良いでしょうか?コントローラからHTTPレスポンスにJavascriptコードを書き込む
@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());
}
}
はい、Ajaxの呼び出しで行うことができますが、多くのリファクタリングが必要です(これは古いアプリです)。 –