Struts2 отправить форму и показать результат в новом окне - PullRequest
1 голос
/ 28 октября 2011

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();

}

На страницеПравитьполучить результат в jsp / thankyou.jsp, потому что он появляется перед отправкой формы saveTracker.

Ответы [ 2 ]

2 голосов
/ 29 октября 2011

Скорее всего, лучше отправить форму через ajax, а затем открыть новое окно.

Если вы отправите форму с обычным запросом, страница обновится;это так, как это работает.Если вы имеете в виду, что отправка формы снова загружает ту же страницу , это нормально, но вам все равно нужно взаимодействовать с сервером, прежде чем откроется новое окно.

0 голосов
/ 01 марта 2013

попробуйте использовать вашу форму, как показано ниже, а также использовать следующую функцию 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;
        }

Я также выполнил некоторое форматирование для нового окна.

С уважением.

...