如何使用showModalDialog传递参数

时间:2013-08-28 04:28:31

标签: java javascript jsp parameters struts2

我有一个问题。

我在JSP文件中写下以下内容。

<s:url id="printURL" action="actMod" method="printout">
    <s:param name="txt_ActEdit_accid"><s:property value="%{txt_ActEdit_accid}" /></s:param>
    <s:param name="txt_ActEdit_accffname"><s:property value="%{txt_ActEdit_accffname}" /></s:param>
    <s:set var="loginPassword"><%=OpeCommon.LOGIN_PASSWORD %></s:set>
    <s:param name="%{#loginPassword}"><%=OpeCommon.encriptPassword(p_userID, p_passCode)%></s:param>
</s:url>
<s:submit name="btn_ActList_print" cssClass="dispLvl3 mediumbutton" value="%{getFieldName('S05AccountEdit.print_button')}"
onclick="javascript:popUp('%{printURL}','elastic',500,500);return false;"/>

我在js文件中写下以下内容。

var newWin = null;

function popUp(strURL, strType, strHeight, strWidth) {
  if (newWin != null && !newWin.closed)
    newWin.close();
  var strOptions="";
  if (strType=="console")
    strOptions="resizable,height="+
      strHeight+",width="+strWidth;
  if (strType=="fixed")
    strOptions="status,height="+
      strHeight+",width="+strWidth;
  if (strType=="elastic")
    strOptions="toolbar,menubar,scrollbars,"+
      "resizable,location,height="+
      strHeight+",width="+strWidth;
  newWin = window.open(strURL, 'newWin', strOptions);
  newWin.focus();
}

它知道所有参数值,但是当我更改JavaScript函数名称和脚本编码时,它不起作用。我的意思是它只知道第一个参数值(txt_ActEdit_accid)。

<s:submit name="btn_ActList_print" cssClass="dispLvl3 mediumbutton" value="%{getFieldName('S05AccountEdit.print_button')}"
onclick="javascript:printWindow('%{printURL}','',500,500);return false;"/>
function printWindow(x_URL, x_ARG, x_WIDTH, x_HEIGHT)
{
    var x_OPT = "dialogHeight: "+x_HEIGHT+"px; "
    +"dialogWidth: "+x_WIDTH+"px; "
    +"edge: Raised; center: Yes; resizable: Yes; status: Yes;";
    window.showModalDialog(x_URL, x_ARG, x_OPT);
}

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

现在,您遇到s:url标记的问题。 Struts标签通常转义标签的value。但它阻止了javascript正常工作。您需要将escapeAmp="false"添加到s:url标记以获取其他参数。