У меня есть arrayList (List dinTabel = new ArrayList();
), который я хочу передать в JasperReport в коллекции (Collection<ExtraContList> coll = new ArrayList<ExtraContList>();
)
У меня есть свой Java-класс ExtraContList здесь:
package banking.model;
import java.util.List;
public class ExtraContList {
private List<String> cont;
private List<String> sum_deb;
private List<String> sum_cred;
private List<String> sold_curent;
private List<String> data;
public List<String> getData() {
return data;
}
public Integer getCont() {
return cont;
}
public List<String> getSum_deb() {
return sum_deb;
}
public List<String> getSum_cred() {
return sum_cred;
}
public List<String> getSold_curent() {
return sold_curent;
}
public ExtraContList(List<String> data, List<String> sum_deb, List<String> sum_cred,
List<String> sold_curent, Integer cont) {
super();
this.data = data;
this.cont = cont;
this.sum_deb = sum_deb;
this.sum_cred = sum_cred;
this.sold_curent = sold_curent;
}
}
Но всякий раз, когда я пытаюсь добавить arrayList этой строкой
coll.add(new ExtraContList(Arrays.asList(resultSet.getString("d_o"),ConturiUserID,resultSet.getString("tsum")," ",resultSet.getString("sCS"))));
, он говорит мне, что Конструктор не определен, и это создает мне этот
public ExtraContList(List<? extends Object> asList) {
// TODO Auto-generated constructor stub
}
Не могли бы вы сказать мне ..как добавить это
public ExtraContList(List<String> data, List<String> sum_deb, List<String> sum_cred,
List<String> sold_curent, Integer cont) {
super();
this.data = data;
this.cont = cont;
this.sum_deb = sum_deb;
this.sum_cred = sum_cred;
this.sold_curent = sold_curent;
}
в конструктор (ExtraContList(List<? extends Object> asList)
)?
ОБНОВЛЕНИЕ: я изменил с coll.add (новый ExtraContList(Arrays.asList(resultSet.getString("d_o"),ConturiUserID," ",resultSet.getString("tsum"),resultSet.getString("sCD"))));
на
coll.add(new ExtraContList(Arrays.asList(resultSet.getString("d_o")),Arrays.asList(ConturiUserIDint),Arrays.asList(" "),Arrays.asList(resultSet.getString("tsum")),Arrays.asList(resultSet.getString("sCD"))));
Я не могу понять, как напечатать содержимое моей коллекции, чтобы проверить, все ли в порядке. После запуска
System.out.println(coll);
он печатает меня
[banking.model.ExtraContList@4593f370, banking.model.ExtraContList@23feaea9, banking.model.ExtraContList@221b98b5]
Я добавил эти поля в свой jrxml:
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="data" class="java.util.List"/>
<field name="sold_curent" class="java.util.List"/>
<field name="sum_cred" class="java.util.List"/>
<field name="class" class="java.lang.Class"/>
<field name="sum_deb" class="java.util.List"/>
<field name="cont" class="java.util.List"/>
Но я получаю это:
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean: data.
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:205)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:170)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:104)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:1501)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1402)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1378)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1194)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:108)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:615)
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:432)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:162)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:145)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:689)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:1005)
at banking.web.servlets.ExtraCont.doPost(ExtraCont.java:321)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NoSuchMethodException: Unknown property 'data' on class 'class java.lang.String'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1269)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:808)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:884)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:464)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:185)
... 35 more
Я по-прежнему получаю сообщение об ошибке даже после того, как я изменил имена полей с
<field name="data" class="java.util.List"/>
в:
<field name="data" class="banking.model.ExtraContList"/>
Я также изменил переменную cont с Integer на List