Java 如何在struts2+中的同一页面上显示图表;柱状图
单击页面上的按钮,我希望显示条形图。我可以显示条形图,但图表将在新窗口中打开,但我希望在同一页面上显示它 我单击transactionData.jsp上的以下按钮以显示图表: 在transactionData.jsp中: 修改: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
<%@ 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(列表);
回归成功;
}
}
有人能建议我如何在同一页上显示条形图吗