在Struts 2中单击同一页面上的两个按钮时的不同行为

时间:2014-11-22 16:01:06

标签: struts2

我有test.jsp有两个按钮。点击“显示图表”按钮,它应该在新页面上打开图表,这是使用表单标记中的target=_blank进行的。但问题是我不希望单击“显示数据”按钮时出现此行为。单击此按钮,我想显示仅在同一页面上获取的数据,但是当前对于此按钮也会打开一个新窗口。

我的代码是:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Data</title>
<s:head theme="ajax" debug="true"/>
</head>
<body bgcolor="white">

<s:form validate="true" target="_blank">
<table>

//Mapping of data from database

</table>

<s:submit id="submit" value="Display Chart" align="left" action="testAction"/>
<s:submit value="Display Data" align="left" action="displayDataAction"/>`
  </s:form>
</body>
</html>
public class TestAction  extends ActionSupport{

    public String execute() throws Exception {

        //code to populate DataSet

        chart = ChartFactory.createBarChart(
               "Bar Chart",     //Chart title
            "",     //Domain axis label
            "MARKETS",         //Range axis label
            dataSet,         //Chart Data 
            PlotOrientation.VERTICAL, // orientation
            true,             // include legend?
            true,             // include tooltips?
            false             // include URLs?
        );
     chart.setBorderVisible(true);
     return SUCCESS;
    }
}

struts.xml

<action name="testAction" 
        class="testAction" 
        method="execute">
             <result name="success" type="chart">
                <param name="value">chart</param>
                <param name="type">jpeg</param>
                <param name="width">600</param>
                <param name="height">400</param>
            </result> 
</action>

<action name="displayDataAction" 
        class="testAction" 
        method="getData">
            <result name="success">test.jsp</result>
</action>

1 个答案:

答案 0 :(得分:0)

我完成了如下操作:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
function openPopUp(){
    document.getElementById('testForm').setAttribute('target', '_blank');
    document.getElementById('testForm').setAttribute('action', 'testAction.action');
    document.getElementById('testForm').submit();

}
function noPopUp(){
    document.getElementById('testForm').setAttribute('target', '');
}
<title>Data</title>
<s:head theme="ajax" debug="true"/>
</head>
<body bgcolor="white">

<s:form validate="true" target="_blank">
<table>

//Mapping of data from database

</table>

<s:submit id="submit" value="Display Chart" align="left" onclick="openPopUp();"/>
<s:submit value="Display Data" align="left" action="displayDataAction" onclick="noPopUp();"/>`
  </s:form>
</body>
</html>