1,checkbox
<input type="checkbox" name="ontop" value="1" <%if(v6==1){ %>checked="checked"<%} %>>
必须有value="1",不然 String ontops= request.getParameter("ontop");是空值。
2,MySQL的group by 和 group_concat,把字符结果分组累加
一个表结构及内容是这样的:
big small
1 1
1 2
1 3
2 4
2 5
String sql = "select bigid,group_concat(id) as ids from news_smallcolumn group by bigid order by bigid";运行这个语句,结果是这样的
bigid ids
1 1,2,3
2 4,5
然后可以通过
String content = rs.getString("ids");
String[] contents = content.split(",");
做一些动作。
3,错误
问题:java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1295)
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1256)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:130)
at com.eduinfo.admin.servlet.AdminLoginServlet.doGet(AdminLoginServlet.java:80)
at com.eduinfo.admin.servlet.AdminLoginServlet.doPost(AdminLoginServlet.java:30)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
at java.lang.Thread.run(Unknown Source)
原因:AdminBean admb = new AdminBean(rs.getString("AdminName"), rs.getString("Type"), rs.getInt("Id"));
HttpSession sess = request.getSession();
sess.setAttribute("admin", admb);
AdminBean 没有实现序列化 Serializable 接口。
解决:class AdminBean implements Serializable
iReport
编译时候
is not a valid character for Standard 2 of 5 encoding
运行时候
Filling report...
Locale: 中文 (中国)
Time zone: Default
Error filling print... Error evaluating expression : Source text : it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(13,"DJC09",true,false,null,0,0)
net.sourceforge.barbecue.BarcodeException: The Interleave 2 of 5 encoding requires an even number of data at net.sourceforge.barbecue.linear.twoOfFive.Int2of5Barcode.validateData(Unknown Source) at net.sourceforge.barbecue.linear.twoOfFive.Std2of5Barcode.<init>(Unknown Source) at net.sourceforge.barbecue.linear.twoOfFive.Std2of5Barcode.<init>(Unknown Source) at net.sourceforge.barbecue.linear.twoOfFive.Int2of5Barcode.<init>(Unknown Source) at net.sourceforge.barbecue.BarcodeFactory.createInt2of5(Unknown Source) at it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(BcImage.java:76) at test_1238921261578_17613.evaluate(test_1238921261578_17613:165) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:186) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:537) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:505) at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:826) at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:890) at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:871) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:426) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:879) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:801) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:910) at java.lang.Thread.run(Unknown Source) net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : Source text : it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(13,"DJC09",true,false,null,0,0) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:197) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:537) at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:505) at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:826) at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:890) at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:871) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:426) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:879) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:801) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:910) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.RuntimeException: The Interleave 2 of 5 encoding requires an even number of data at it.businesslogic.ireport.barcode.BcImage.getBarcodeImage(BcImage.java:101) at test_1238921261578_17613.evaluate(test_1238921261578_17613:165) at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:186) ... 18 more
Print was not filled. Try using an EmptyDataSource...
it.businesslogic.ireport.barcode.BcImage cannot be resolved to a type
在iReport中编译成功,tomcat中不成功。iReport.jar没在lib中,加入即可。