【问题标题】:struts2 submit form and show result in a new windowstruts2 提交表单并在新窗口中显示结果
【发布时间】:2011-10-28 19:37:13
【问题描述】:

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 表单提交之前弹出。

【问题讨论】:

    标签: struts2 window show


    【解决方案1】:

    您最好通过 ajax 提交表单然后打开新窗口。

    如果你提交一个普通请求的表单,页面会更新;这就是它的工作方式。如果您的意思是表单提交再次重新加载 same 页面,那很好,但您仍然需要在新窗口打开之前与服务器交互。

    【讨论】:

      【解决方案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;
              }
      

      我也为新窗口做了一些格式化。

      问候。

      【讨论】:

        猜你喜欢
        • 2012-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-05
        • 1970-01-01
        • 2012-08-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多