Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在struts2+中的同一页面上显示图表;柱状图_Java_Jsp_Struts2_Jfreechart_Struts2 Jfreechart Plugin - Fatal编程技术网

Java 如何在struts2+中的同一页面上显示图表;柱状图

Java 如何在struts2+中的同一页面上显示图表;柱状图,java,jsp,struts2,jfreechart,struts2-jfreechart-plugin,Java,Jsp,Struts2,Jfreechart,Struts2 Jfreechart Plugin,单击页面上的按钮,我希望显示条形图。我可以显示条形图,但图表将在新窗口中打开,但我希望在同一页面上显示它 我单击transactionData.jsp上的以下按钮以显示图表: 在transactionData.jsp中: 修改: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="s" uri

单击页面上的按钮,我希望显示条形图。我可以显示条形图,但图表将在新窗口中打开,但我希望在同一页面上显示它

我单击transactionData.jsp上的以下按钮以显示图表:

在transactionData.jsp中: 修改:

 <%@ 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>
    $(function(){
        $("#submitButton").click(function(e){
            e.preventDefault();
            $.ajax({type: "GET",
            url: "<s:url action='displayChartAction'/>",
            success:function(result){
                $("#chartOutput").html(result);
            }
        });
     });
    });
</script>


<s:head theme="ajax" debug="true"/>
<title>Hello World</title>
</head>
<body bgcolor="grey">
<s:form>
      <s:datetimepicker label="Select From" name="transactionBean.fromDate" displayFormat="dd-MM-yy" required="true" />  
      <s:datetimepicker label="Select To" name="transactionBean.toDate" displayFormat="dd-MM-yy" required="true" />
      <s:optiontransferselect
        label="Channels"
        name="transactionBean.leftChannels"
        leftTitle="Unselected Channels"
        rightTitle="Selected Channels"
        list="transactionBean.leftChannelsList"
        multiple="true"
        headerKey="-1"
        doubleList="transactionBean.rightChannelsList"
        doubleName="transactionBean.rightChannels"
        doubleHeaderKey="-1"
        doubleHeaderValue="Selected Values"
      /> 

      <!-- Transaction Types -->

      <s:optiontransferselect

        label="transaction Types"
        name="transactionBean.leftTransTypes"
        leftTitle="Unselected Transaction Type"
        rightTitle="Selected Transaction Type"
        list="transactionBean.leftTransTypesList"
        multiple="true"
        headerKey="-1"
        doubleList="transactionBean.rightTransTypesList"
        doubleName="transactionBean.rightTransTypes"
        doubleHeaderKey="-1"
        doubleHeaderValue="Selected Values"
      />  


      <!-- Bics -->
       <s:optiontransferselect
        label="Bics"
        name="transactionBean.leftBics"
        leftTitle="Unselected Bics"
        rightTitle="Selected Bics"
        list="transactionBean.leftBicsList"
        multiple="true"
        headerKey="-1"
        doubleList="transactionBean.rightBicList"
        doubleName="transactionBean.rightBics"
        doubleHeaderKey="-1"
        doubleHeaderValue="Selected Values"
      />     
    <div id="chartOutput"> 

    </div>
      <h3>All Records:</h3>  
      <table border="true"> 
        <s:iterator  value="listTransBean">   
             <tr>
             <td>
            <s:property value="dateTime"/><br/>
            </td>
            <td>   
            <s:property value="channel"/><br/>
            </td>
            <td>   
            <s:property value="transactionType"/><br/>
            </td>
            <td>   
            <s:property value="bic"/><br/>
            </td>
            <td>
            <s:property value="volume"/><br/>
            </td>
            </tr>     

        </s:iterator>  
        </table>

       <s:submit id="submitButton" value="Show Chart" align="center" />
       <s:submit value="Fetch Data" align="center" action="displayDataAction" />

   </s:form>
</body>
</html>

$(函数(){
$(“#提交按钮”)。单击(函数(e){
e、 预防默认值();
$.ajax({type:“GET”,
url:“”,
成功:功能(结果){
$(“#图表输出”).html(结果);
}
});
});
});
你好,世界
所有记录:





displayChartAction映射到struts.xml中,如下所示:

<action name="displayChartAction" 
        class="com.tutorialspoint.struts2.jFreeChartAction" 
        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>

图表
jpeg
600
400
JfreeChartAcction如下所示:

    public class JfreeChartAction extends ActionSupport {

    private JFreeChart chart;

    private TransactionBean transactionBean;
    private TransactionDao transactionDao;
    private List<TransactionBean> listTransBean;

    public List<TransactionBean> getListTransBean() {
        return listTransBean;
    }

    public void setListTransBean(List<TransactionBean> listTransBean) {
        if(listTransBean == null){
            listTransBean = new ArrayList<TransactionBean>();
        }
        this.listTransBean = listTransBean;
    }

    public TransactionDao getTransactionDao() {
        return transactionDao;
    }

    public void setTransactionDao(TransactionDao transactionDao) {
        this.transactionDao = transactionDao;
    }

    public TransactionBean getTransactionBean() {
        if(transactionBean==null){
            transactionBean = new TransactionBean();
        }
        return transactionBean;
    }

    public void setTransactionBean(TransactionBean transactionBean) {
        this.transactionBean = transactionBean;
    }
    // This method will get called if we specify <param name="value">chart</param>
    public JFreeChart getChart() {
        return chart;
    }

    public void setChart(JFreeChart chart) {
        this.chart = chart;
    }

    public String execute() throws Exception {
        System.out.println("Inside Execute: Start");

        System.out.println("From date:"+getTransactionBean().getFromDate());
        System.out.println("From date:"+getTransactionBean().getToDate());
        System.out.println("leftChannels:"+getTransactionBean().getLeftChannels());
        System.out.println("RightChannels:"+getTransactionBean().getRightChannels());
        System.out.println("leftChannelsList:"+getTransactionBean().getLeftChannelsList());
        System.out.println("rightChannelsList"+getTransactionBean().getRightChannelsList());
        System.out.println("Left Trans type List"+getTransactionBean().getLeftTransTypesList());
        System.out.println("Right Trans type List"+getTransactionBean().getRightTransTypesList());
        System.out.println("Right Trans Type"+getTransactionBean().getRightTransTypes());
        System.out.println("Left Bic List"+getTransactionBean().getLeftBicsList());
        System.out.println("Right Bic List"+getTransactionBean().getRightBicList());
        System.out.println("Right Bics"+getTransactionBean().getRightBics());
        System.out.println("Inside Execute: End");
        List<TransactionBean> list = transactionDao.fetchChartData(getTransactionBean());

        System.out.println("List Size:"+list.size());
        Iterator<TransactionBean> itr = list.iterator();

        DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
        while(itr.hasNext()){

            TransactionBean transBean = (TransactionBean)itr.next();
            System.out.println("Volume:"+transBean.getVolume());
            System.out.println("Date Time:"+transBean.getDateTime().toString());
            System.out.println("Channel:"+transBean.getChannel());
            dataSet.setValue(transBean.getVolume(),transBean.getDateTime(),"Channel");
        }

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

        }

    public String display(){
        System.out.println("Inside display");   
        List<String> leftChannelsList = null;

        leftChannelsList = transactionDao.fetchChannels();
        setTransactionBean(new TransactionBean());
        getTransactionBean().setLeftChannelsList(leftChannelsList);

        List<String> leftTransTypesList = null;
        leftTransTypesList = transactionDao.fetchTransactionTypes();
        getTransactionBean().setLeftTransTypesList(leftTransTypesList);

        List<String> leftBicsList = null;
        leftBicsList =  transactionDao.fetchBics();
        getTransactionBean().setLeftBicsList(leftBicsList);

        return SUCCESS; 
    }

    public JfreeChartAction(){
        System.out.println("Inside Constructor");
    }


    public String fetchTransactionsData(){
        System.out.println("Inside Fetch Transaction Data");
        List<TransactionBean> list = transactionDao.fetchTransactionsData(getTransactionBean());
        setListTransBean(list);
        return SUCCESS;
    }
}
公共类JfreeChartAction扩展了ActionSupport{
私人海图;
私有TransactionBean TransactionBean;
私有事务dao事务dao;
私有列表listTransBean;
公共列表getListTransBean(){
返回listTransBean;
}
public void setListTransBean(列表listTransBean){
if(listTransBean==null){
listTransBean=newArrayList();
}
this.listTransBean=listTransBean;
}
公共事务DAO getTransactionDao(){
返回事务dao;
}
公共无效setTransactionDao(TransactionDao TransactionDao){
this.transactionDao=transactionDao;
}
PublicTransactionBean getTransactionBean(){
if(transactionBean==null){
transactionBean=新transactionBean();
}
返回事务bean;
}
public void setTransactionBean(TransactionBean TransactionBean){
this.transactionBean=transactionBean;
}
//如果指定图表,将调用此方法
公共JFreeChart getChart(){
收益表;
}
公共无效设置图表(JFreeChart图表){
this.chart=图表;
}
公共字符串execute()引发异常{
System.out.println(“内部执行:启动”);
System.out.println(“起始日期:+getTransactionBean().getFromDate());
System.out.println(“起始日期:+getTransactionBean().getToDate());
System.out.println(“leftChannels:+getTransactionBean().getLeftChannels());
System.out.println(“RightChannel:+getTransactionBean().GetRightChannel());
System.out.println(“leftChannelsList:+getTransactionBean().getLeftChannelsList());
System.out.println(“rightChannelsList”+getTransactionBean().getRightChannelsList());
System.out.println(“左Trans类型列表”+getTransactionBean().getLeftTransTypesList());
System.out.println(“右转换类型列表”+getTransactionBean().getRightTransTypesList());
System.out.println(“Right Trans Type”+getTransactionBean().getRightTransTypes());
System.out.println(“左Bic列表”+getTransactionBean().getLeftBicsList());
System.out.println(“右Bic列表”+getTransactionBean().getRightBicList());
System.out.println(“右Bics”+getTransactionBean().getRightBics());
System.out.println(“内部执行:结束”);
List List=transactionDao.fetchChartData(getTransactionBean());
System.out.println(“列表大小:+List.Size());
迭代器itr=list.Iterator();
DefaultCategoryDataset数据集=新的DefaultCategoryDataset();
while(itr.hasNext()){
TransactionBean transBean=(TransactionBean)itr.next();
System.out.println(“卷:+transBean.getVolume());
System.out.println(“日期时间:+transBean.getDateTime().toString());
System.out.println(“通道:+transBean.getChannel());
setValue(transBean.getVolume(),transBean.getDateTime(),“通道”);
}
chart=ChartFactory.createBarChart(
“条形图”,//图表标题
“”,//域轴标签
“事务”,//范围轴标签
dataSet,//图表数据
PlotOrientation.VERTICAL,//方向
正确,//是否包含图例?
true,//是否包含工具提示?
false//是否包含URL?
);
图表.可见(真);
System.out.println(“执行结束”);
回归成功;
}
公共字符串显示(){
System.out.println(“内部显示”);
List leftChannelsList=null;
leftChannelsList=transactionDao.fetchChannels();
setTransactionBean(新TransactionBean());
getTransactionBean().setLeftChannelsList(leftChannelsList);
List leftTransTypesList=null;
leftTransTypesList=transactionDao.fetchTransactionTypes();
getTransactionBean().setLeftTransTypesList(leftTransTypesList);
List leftBicsList=null;
leftBicsList=transactionDao.fetchBics();
getTransactionBean().setLeftBicsList(leftBicsList);
回归成功;
}
公共JfreeChartAction(){
System.out.println(“内部构造函数”);
}
公共字符串fetchTransactionData(){
System.out.println(“内部获取事务数据”);
List List=transactionDao.fetchTransactionData(getTransactionBean());
setListTransBean(列表);
回归成功;
}
}
有人能建议我如何在同一页上显示条形图吗