First problem: set WhenNoDataType is AllSectionsNoDetail, the report will not blank anymore. HashMap<String, Object> parameters = new HashMap<>();// Load your templateJasperReport jasperReport = this.loadTemplate();jasperReport.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL);// Create an empty datasource.final JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(Collections.singletonList(""));JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);[/code]About inserting the current date, just use new Date() in your report template Second problem: Just put your object into Parameters and define your parameter in your template, you can use parameter perfectly. In java parameters.put("testingParameter", "This is a string.");[/code]In your template: Define <parameter name="testingParameter" class="java.lang.String"/>[/code]And use it: [/code]Third problem: When defining parameter in your template, point the type of that parameter <parameter name="javaObject" class="com.example.YourClass"/>[/code]Then you can use methods in that class such as getters and setters