#struts2 #window #show
#struts2 #окно #показать
Вопрос:
struts.xml
<action name="run" class="editTrackerAction" method="run">
<result name="input">/jsp/editTracker.jsp</result>
</action>
editTracker.jsp
<s:form method="post" name="saveTracker" id="saveTracker">
<input type="submit" name="executeEntityButtonName"
id="executeEntityOnTableSubmit" value="Run Entity" onclick="executeEntityOnTable();">
* .js имеет функцию
function executeEntityOnTable() {
document.saveTracker.action="run";
document.saveTracker.onsubmit=window.open('jsp/thankyou.jsp', 'executeEntityOnTable', 'width=450,height=300,status=yes,resizable=yes,scrollbars=yes');
document.saveTracker.submit();
}
На странице editTracker.jsp мне нужно нажать кнопку отправки, чтобы отобразить переменную результата, определенную в действии на странице jsp / thankyou.jsp в новом окне, страница editTracker.jsp все еще остается там после отправки формы как struts.xml настроен, но я не могу получить результат в jsp/thankyou.jsp, потому что этовсплывающее окно появляется перед отправкой формы saveTracker.
Ответ №1:
Вероятно, вам было бы лучше отправить форму через ajax, а затем открыть новое окно.
Если вы отправляете форму с обычным запросом, страница обновится; именно так это и работает. Если вы имеете в виду, что отправка формы снова перезагружает ту же страницу, это нормально, но вам все равно нужно взаимодействовать с сервером, прежде чем откроется новое окно.
Ответ №2:
попробуйте использовать свою форму примерно так, как показано ниже, а также использовать следующую функцию javascript.
<form name="myForm" action="myaction.do" method="post"
onsubmit="return createTarget(this.target)" target="formtarget">
функция javascript….
function createTarget(t){
var left = (screen.width/2)-(700/2);
var top = (screen.height/2)-(550/2);
window.open("", t,"status = 1,height = 550,width = 700,resizable = 1,left=" left ",top=" top);
return true;
}
Я также выполнил некоторое форматирование для нового окна.
С уважением.