Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ef76286

Browse files
Spring MVC JasperReport
Creación y visualización de reportes en una aplicación web utilizando la biblioteca JasperReport.
1 parent ca6bbe1 commit ef76286

File tree

13 files changed

+467
-0
lines changed

13 files changed

+467
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project-shared-configuration>
3+
<!--
4+
This file contains additional configuration written by modules in the NetBeans IDE.
5+
The configuration is intended to be shared among all the users of project and
6+
therefore it is assumed to be part of version control checkout.
7+
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
8+
-->
9+
<spring-data xmlns="http://www.netbeans.org/ns/spring-data/1">
10+
<config-files>
11+
<config-file>src/main/webapp/WEB-INF/springmvc-servlet.xml</config-file>
12+
</config-files>
13+
<config-file-groups/>
14+
</spring-data>
15+
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
16+
<!--
17+
Properties that influence various parts of the IDE, especially code formatting and the like.
18+
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
19+
That way multiple projects can share the same settings (useful for formatting rules for example).
20+
Any value defined here will override the pom.xml file value but is only applicable to the current project.
21+
-->
22+
<org-netbeans-modules-javascript2-requirejs.enabled>true</org-netbeans-modules-javascript2-requirejs.enabled>
23+
<org-netbeans-modules-projectapi.jsf_2e_language>JSP</org-netbeans-modules-projectapi.jsf_2e_language>
24+
</properties>
25+
</project-shared-configuration>

‎tutorial_webmvc_report/pom.xml

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>carmelo.spring</groupId>
5+
<artifactId>tutorial_webmvc_report</artifactId>
6+
<packaging>war</packaging>
7+
<version>1.0</version>
8+
<name>tutorial_webmvc_report</name>
9+
10+
<properties>
11+
<spring.version>4.3.7.RELEASE</spring.version>
12+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
13+
<maven.compiler.source>1.8</maven.compiler.source>
14+
<maven.compiler.target>1.8</maven.compiler.target>
15+
</properties>
16+
17+
<dependencies>
18+
<!-- Spring Web MVC -->
19+
<dependency>
20+
<groupId>org.springframework</groupId>
21+
<artifactId>spring-webmvc</artifactId>
22+
<version>${spring.version}</version>
23+
</dependency>
24+
<dependency>
25+
<groupId>org.springframework</groupId>
26+
<artifactId>spring-context-support</artifactId>
27+
<version>${spring.version}</version>
28+
</dependency>
29+
30+
<!-- JasperReport -->
31+
<dependency>
32+
<groupId>net.sf.jasperreports</groupId>
33+
<artifactId>jasperreports</artifactId>
34+
<version>6.3.0</version>
35+
</dependency>
36+
<dependency>
37+
<groupId>com.fasterxml.jackson.core</groupId>
38+
<artifactId>jackson-core</artifactId>
39+
<version>2.8.7</version>
40+
</dependency>
41+
42+
<!-- PDF View -->
43+
<dependency>
44+
<groupId>com.lowagie</groupId>
45+
<artifactId>itext</artifactId>
46+
<version>2.1.7</version>
47+
</dependency>
48+
49+
<!-- XLS View -->
50+
<dependency>
51+
<groupId>org.apache.poi</groupId>
52+
<artifactId>poi</artifactId>
53+
<version>3.14</version>
54+
</dependency>
55+
56+
57+
<!-- Java Servlet y JSP -->
58+
<dependency>
59+
<groupId>javax.servlet</groupId>
60+
<artifactId>javax.servlet-api</artifactId>
61+
<version>3.1.0</version>
62+
<scope>provided</scope>
63+
</dependency>
64+
<dependency>
65+
<groupId>javax.servlet</groupId>
66+
<artifactId>jstl</artifactId>
67+
<version>1.2</version>
68+
</dependency>
69+
70+
<!-- Loogging slf4j -->
71+
<dependency>
72+
<groupId>org.slf4j</groupId>
73+
<artifactId>slf4j-log4j12</artifactId>
74+
<version>1.7.12</version>
75+
</dependency>
76+
<dependency>
77+
<groupId>log4j</groupId>
78+
<artifactId>log4j</artifactId>
79+
<version>1.2.17</version>
80+
</dependency>
81+
82+
<!-- Lombok -->
83+
<dependency>
84+
<groupId>org.projectlombok</groupId>
85+
<artifactId>lombok</artifactId>
86+
<version>1.16.12</version>
87+
</dependency>
88+
89+
</dependencies>
90+
91+
<build>
92+
<finalName>tutorial_webmvc_report</finalName>
93+
<plugins>
94+
<plugin>
95+
<groupId>org.apache.maven.plugins</groupId>
96+
<artifactId>maven-war-plugin</artifactId>
97+
<version>2.3</version>
98+
<configuration>
99+
<failOnMissingWebXml>false</failOnMissingWebXml>
100+
</configuration>
101+
</plugin>
102+
</plugins>
103+
</build>
104+
105+
</project>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package carmelo.spring;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.ComponentScan;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.web.servlet.ViewResolver;
7+
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
8+
import org.springframework.web.servlet.view.InternalResourceViewResolver;
9+
import org.springframework.web.servlet.view.ResourceBundleViewResolver;
10+
import org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView;
11+
import org.springframework.web.servlet.view.jasperreports.JasperReportsViewResolver;
12+
13+
@Configuration
14+
@EnableWebMvc
15+
@ComponentScan(basePackages = {
16+
"carmelo.spring.controller",
17+
"carmelo.spring.service"})
18+
public class WebAppConfig {
19+
20+
@Bean
21+
public JasperReportsViewResolver getJasperReportsViewResolver() {
22+
JasperReportsViewResolver resolver = new JasperReportsViewResolver();
23+
resolver.setPrefix("classpath:/jasperreports/");
24+
resolver.setSuffix(".jasper");
25+
resolver.setReportDataKey("datasource");
26+
resolver.setViewNames("*_report");
27+
resolver.setViewClass(JasperReportsMultiFormatView.class);
28+
resolver.setOrder(1);
29+
return resolver;
30+
}
31+
32+
@Bean
33+
public ViewResolver internalResourceViewResolver() {
34+
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
35+
resolver.setPrefix("/WEB-INF/views/");
36+
resolver.setSuffix(".jsp");
37+
resolver.setOrder(2);
38+
return resolver;
39+
}
40+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package carmelo.spring;
2+
3+
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
4+
5+
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
6+
7+
@Override
8+
protected Class<?>[] getRootConfigClasses() {
9+
return null;
10+
}
11+
12+
@Override
13+
protected Class<?>[] getServletConfigClasses() {
14+
return new Class[]{WebAppConfig.class};
15+
}
16+
17+
@Override
18+
protected String[] getServletMappings() {
19+
return new String[]{"/"};
20+
}
21+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package carmelo.spring.controller;
2+
3+
import carmelo.spring.service.CustomerService;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.stereotype.Controller;
6+
import org.springframework.ui.Model;
7+
import org.springframework.web.bind.annotation.RequestMapping;
8+
import org.springframework.web.bind.annotation.RequestParam;
9+
import org.springframework.web.servlet.ModelAndView;
10+
11+
@Controller
12+
public class CustomerController {
13+
14+
@Autowired
15+
private CustomerService customerService;
16+
17+
@RequestMapping("/")
18+
public ModelAndView verInicio() {
19+
return new ModelAndView("customer");
20+
}
21+
22+
@RequestMapping("/report")
23+
public String verReporte(Model model,
24+
@RequestParam(
25+
name = "format",
26+
defaultValue = "pdf",
27+
required = false) String format) {
28+
29+
model.addAttribute("format", format);
30+
model.addAttribute("datasource", customerService.findAll());
31+
model.addAttribute("AUTOR", "Tutor de programacion");
32+
33+
return "customer_report";
34+
}
35+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package carmelo.spring.model;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
6+
@Data
7+
@AllArgsConstructor
8+
public class Customer {
9+
private Integer ID;
10+
private String FIRSTNAME;
11+
private String LASTNAME;
12+
private String STREET;
13+
private String CITY;
14+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package carmelo.spring.service;
2+
3+
import carmelo.spring.model.Customer;
4+
import java.util.List;
5+
6+
public interface CustomerService {
7+
8+
List<Customer> findAll();
9+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package carmelo.spring.service;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
import carmelo.spring.model.Customer;
6+
import org.springframework.stereotype.Service;
7+
8+
@Service
9+
public class CustomerServiceImpl implements CustomerService {
10+
11+
@Override
12+
public List<Customer> findAll() {
13+
return Arrays.asList(
14+
new Customer(0, "Laura", "Steel", "429 Seventh Av.", "Dallas"),
15+
new Customer(1, "Susanne", "King", "366 - 20th Ave.", "Olten"),
16+
new Customer(2, "Anne", "Miller", "20 Upland Pl.", "Lyon"),
17+
new Customer(3, "Michael", "Clancy", "542 Upland Pl.", "San Francisco"),
18+
new Customer(4, "Sylvia", "Ringer", "365 College Av.", "Dallas"),
19+
new Customer(5, "Laura", "Miller", "294 Seventh Av.", "Paris"),
20+
new Customer(6, "Laura", "White", "506 Upland Pl.", "Palo Alto"),
21+
new Customer(7, "James", "Peterson", "231 Upland Pl.", "San Francisco"),
22+
new Customer(8, "Andrew", "Miller", "288 - 20th Ave.", "Seattle"),
23+
new Customer(9, "James", "Schneider", "277 Seventh Av.", "Berne"),
24+
new Customer(10, "Anne", "Fuller", "135 Upland Pl.", "Dallas"),
25+
new Customer(11, "Julia", "White", "412 Upland Pl.", "Chicago"),
26+
new Customer(12, "George", "Ott", "381 Upland Pl.", "Palo Alto"),
27+
new Customer(13, "Laura", "Ringer", "38 College Av.", "New York"),
28+
new Customer(14, "Bill", "Karsen", "53 College Av.", "Oslo"),
29+
new Customer(15, "Bill", "Clancy", "319 Upland Pl.", "Seattle"),
30+
new Customer(16, "John", "Fuller", "195 Seventh Av.", "New York"),
31+
new Customer(17, "Laura", "Ott", "443 Seventh Av.", "Lyon"),
32+
new Customer(18, "Sylvia", "Fuller", "158 - 20th Ave.", "Paris"),
33+
new Customer(19, "Susanne", "Heiniger", "86 - 20th Ave.", "Dallas"),
34+
new Customer(20, "Janet", "Schneider", "309 - 20th Ave.", "Oslo"),
35+
new Customer(21, "Julia", "Clancy", "18 Seventh Av.", "Seattle"),
36+
new Customer(22, "Bill", "Ott", "250 - 20th Ave.", "Berne"),
37+
new Customer(23, "Julia", "Heiniger", "358 College Av.", "Boston"),
38+
new Customer(24, "James", "Sommer", "333 Upland Pl.", "Olten"),
39+
new Customer(25, "Sylvia", "Steel", "269 College Av.", "Paris"),
40+
new Customer(26, "James", "Clancy", "195 Upland Pl.", "Oslo"),
41+
new Customer(27, "Bob", "Sommer", "509 College Av.", "Seattle"),
42+
new Customer(28, "Susanne", "White", "74 - 20th Ave.", "Lyon"),
43+
new Customer(29, "Andrew", "Smith", "254 College Av.", "New York"),
44+
new Customer(30, "Bill", "Sommer", "362 - 20th Ave.", "Olten"),
45+
new Customer(31, "Bob", "Ringer", "371 College Av.", "Olten"),
46+
new Customer(32, "Michael", "Ott", "339 College Av.", "Boston"),
47+
new Customer(33, "Mary", "King", "491 College Av.", "Oslo"),
48+
new Customer(34, "Julia", "May", "33 Upland Pl.", "Seattle"),
49+
new Customer(35, "George", "Karsen", "412 College Av.", "Chicago"),
50+
new Customer(36, "John", "Steel", "276 Upland Pl.", "Dallas"),
51+
new Customer(37, "Michael", "Clancy", "19 Seventh Av.", "Dallas"),
52+
new Customer(38, "Andrew", "Heiniger", "347 College Av.", "Lyon"),
53+
new Customer(39, "Mary", "Karsen", "202 College Av.", "Chicago"),
54+
new Customer(40, "Susanne", "Miller", "440 - 20th Ave.", "Dallas"),
55+
new Customer(41, "Bill", "King", "546 College Av.", "New York"),
56+
new Customer(42, "Robert", "Ott", "503 Seventh Av.", "Oslo"),
57+
new Customer(43, "Susanne", "Smith", "2 Upland Pl.", "Dallas"),
58+
new Customer(44, "Sylvia", "Ott", "361 College Av.", "New York"),
59+
new Customer(45, "Janet", "May", "396 Seventh Av.", "Oslo"),
60+
new Customer(46, "Andrew", "May", "172 Seventh Av.", "New York"),
61+
new Customer(47, "Janet", "Fuller", "445 Upland Pl.", "Dallas"),
62+
new Customer(48, "Robert", "White", "549 Seventh Av.", "San Francisco"),
63+
new Customer(49, "George", "Fuller", "534 - 20th Ave.", "Olten")
64+
);
65+
}
66+
67+
}
Binary file not shown.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /