Merge pull request #3 from tduchateau/master

Added Dandelion-Datatables
This commit is contained in:
michaelisvy 2013-02-25 18:42:58 -08:00
commit 3d9a37fe70
4 changed files with 146 additions and 119 deletions

23
pom.xml
View file

@ -47,7 +47,10 @@
<webjars-bootstrap.version>2.3.0</webjars-bootstrap.version> <webjars-bootstrap.version>2.3.0</webjars-bootstrap.version>
<webjars-jquery-ui.version>1.9.2</webjars-jquery-ui.version> <webjars-jquery-ui.version>1.9.2</webjars-jquery-ui.version>
<webjars-jquery.version>1.9.0</webjars-jquery.version> <webjars-jquery.version>1.9.0</webjars-jquery.version>
<dandelion.datatables.version>0.8.5</dandelion.datatables.version>
<dandelion.datatables.export.itext.version>0.1.5</dandelion.datatables.export.itext.version>
<dandelion.datatables.servlet2.version>0.1.4</dandelion.datatables.servlet2.version>
<maven-assembly-plugin.version>2.4</maven-assembly-plugin.version> <maven-assembly-plugin.version>2.4</maven-assembly-plugin.version>
<maven-clean-plugin.version>2.5</maven-clean-plugin.version> <maven-clean-plugin.version>2.5</maven-clean-plugin.version>
<maven-compiler-plugin.version>3.0</maven-compiler-plugin.version> <maven-compiler-plugin.version>3.0</maven-compiler-plugin.version>
@ -234,7 +237,23 @@
<groupId>org.aspectj</groupId> <groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId> <artifactId>aspectjweaver</artifactId>
</dependency> </dependency>
</dependencies> <!-- Dandelion -->
<dependency>
<groupId>com.github.dandelion</groupId>
<artifactId>datatables-jsp</artifactId>
<version>${dandelion.datatables.version}</version>
</dependency>
<dependency>
<groupId>com.github.dandelion</groupId>
<artifactId>datatables-export-itext</artifactId>
<version>${dandelion.datatables.export.itext.version}</version>
</dependency>
<dependency>
<groupId>com.github.dandelion</groupId>
<artifactId>datatables-servlet2</artifactId>
<version>${dandelion.datatables.servlet2.version}</version>
</dependency>
</dependencies>
<!-- all Maven plugin versions are mentioned in order to guarantee the build reproducibility in the long term --> <!-- all Maven plugin versions are mentioned in order to guarantee the build reproducibility in the long term -->
<build> <build>

View file

@ -2,7 +2,7 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="datatables" uri="http://github.com/dandelion/datatables" %>
<html lang="en"> <html lang="en">
@ -12,36 +12,29 @@
<div class="container"> <div class="container">
<jsp:include page="../fragments/bodyHeader.jsp"/> <jsp:include page="../fragments/bodyHeader.jsp"/>
<h2>Owners</h2> <h2>Owners</h2>
<table class="table table-striped"> <datatables:table id="owners" data="${selections}" cdn="true" row="owner" theme="bootstrap2"
<thead> cssClass="table table-striped" paginate="false" info="false" export="pdf">
<tr> <datatables:column title="Name" cssStyle="width: 150px;" display="html">
<th style="width: 150px;">Name</th> <spring:url value="owners/{ownerId}.html" var="ownerUrl">
<th style="width: 200px;">Address</th> <spring:param name="ownerId" value="${owner.id}"/>
<th>City</th> </spring:url>
<th>Telephone</th> <a href="${fn:escapeXml(ownerUrl)}"><c:out value="${owner.firstName} ${owner.lastName}"/></a>
<th style="width: 100px;">Pets</th> </datatables:column>
</tr> <datatables:column title="Name" display="pdf">
</thead> <c:out value="${owner.firstName} ${owner.lastName}"/>
<c:forEach var="owner" items="${selections}"> </datatables:column>
<tr> <datatables:column title="Address" property="address" cssStyle="width: 200px;"/>
<td> <datatables:column title="City" property="city"/>
<spring:url value="owners/{ownerId}.html" var="ownerUrl"> <datatables:column title="Telephone" property="telephone"/>
<spring:param name="ownerId" value="${owner.id}"/> <datatables:column title="Pets" cssStyle="width: 100px;">
</spring:url> <c:forEach var="pet" items="${owner.pets}">
<a href="${fn:escapeXml(ownerUrl)}"><c:out value="${owner.firstName} ${owner.lastName}"/></a> <c:out value="${pet.name}"/>
</td> </c:forEach>
<td><c:out value="${owner.address}"/></td> </datatables:column>
<td><c:out value="${owner.city}"/></td> <datatables:export type="pdf" cssClass="btn btn-small" />
<td><c:out value="${owner.telephone}"/></td> </datatables:table>
<td>
<c:forEach var="pet" items="${owner.pets}">
<c:out value="${pet.name}"/>
</c:forEach>
</td>
</tr>
</c:forEach>
</table>
<jsp:include page="../fragments/footer.jsp"/> <jsp:include page="../fragments/footer.jsp"/>
</div> </div>

View file

@ -1,7 +1,7 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="datatables" uri="http://github.com/dandelion/datatables" %>
<html lang="en"> <html lang="en">
@ -14,27 +14,18 @@
<h2>Veterinarians</h2> <h2>Veterinarians</h2>
<table class="table table-stripped" style="width:600px;"> <datatables:table id="vets" data="${vets.vetList}" cdn="true" row="vet" theme="bootstrap2" cssClass="table table-striped" paginate="false" info="false">
<thead> <datatables:column title="Name">
<tr> <c:out value="${vet.firstName} ${vet.lastName}"></c:out>
<th>Name</th> </datatables:column>
<th>Specialties</th> <datatables:column title="Specialties">
</tr> <c:forEach var="specialty" items="${vet.specialties}">
</thead> <c:out value="${specialty.name}"/>
<tbody> </c:forEach>
<c:forEach var="vet" items="${vets.vetList}"> <c:if test="${vet.nrOfSpecialties == 0}">none</c:if>
<tr> </datatables:column>
<td><c:out value="${vet.firstName} ${vet.lastName}"/></td> </datatables:table>
<td>
<c:forEach var="specialty" items="${vet.specialties}">
<c:out value="${specialty.name}"/>
</c:forEach>
<c:if test="${vet.nrOfSpecialties == 0}">none</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<table class="table-buttons"> <table class="table-buttons">
<tr> <tr>
<td> <td>

View file

@ -1,65 +1,89 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5"> id="WebApp_ID" version="2.5">
<display-name>Spring PetClinic</display-name> <display-name>Spring PetClinic</display-name>
<description>Spring PetClinic sample application</description> <description>Spring PetClinic sample application</description>
<context-param> <context-param>
<param-name>spring.profiles.active</param-name> <param-name>spring.profiles.active</param-name>
<param-value>jdbc</param-value> <param-value>jdbc</param-value>
<!-- Available profiles: <!-- Available profiles:
<param-value>jdbc</param-value> <param-value>jdbc</param-value>
<param-value>jpa</param-value> (in the case of plain JPA) <param-value>jpa</param-value> (in the case of plain JPA)
<param-value>spring-data-jpa</param-value> (in the case of Spring Data JPA) <param-value>spring-data-jpa</param-value> (in the case of Spring Data JPA)
--> -->
</context-param> </context-param>
<!-- <!--
- Location of the XML file that defines the root application context. - Location of the XML file that defines the root application context.
- Applied by ContextLoaderServlet. - Applied by ContextLoaderServlet.
--> -->
<context-param> <context-param>
<param-name>contextConfigLocation</param-name> <param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/dao-config.xml, classpath:spring/tools-config.xml</param-value> <param-value>classpath:spring/dao-config.xml, classpath:spring/tools-config.xml</param-value>
</context-param> </context-param>
<listener> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> </listener>
<!-- <!--
- Servlet that dispatches request to registered handlers (Controller implementations). - Servlet that dispatches request to registered handlers (Controller implementations).
--> -->
<servlet> <servlet>
<servlet-name>petclinic</servlet-name> <servlet-name>petclinic</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param> <init-param>
<param-name>contextConfigLocation</param-name> <param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/mvc-core-config.xml</param-value> <param-value>classpath:spring/mvc-core-config.xml</param-value>
</init-param> </init-param>
<load-on-startup>1</load-on-startup> <load-on-startup>1</load-on-startup>
</servlet> </servlet>
<servlet-mapping> <servlet-mapping>
<servlet-name>petclinic</servlet-name> <servlet-name>petclinic</servlet-name>
<url-pattern>/</url-pattern> <url-pattern>/</url-pattern>
</servlet-mapping> </servlet-mapping>
<!-- used so we can use forms of method type 'PUT' and 'DELETE' <!-- Dandelion-Datatables servlet definition -->
see here: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/view.html#rest-method-conversion <servlet>
--> <servlet-name>datatablesController</servlet-name>
<filter> <servlet-class>com.github.dandelion.datatables.extras.servlet2.servlet.DatatablesServlet</servlet-class>
<filter-name>httpMethodFilter</filter-name> </servlet>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter> <!-- Dandelion-Datatables servlet mapping -->
<servlet-mapping>
<filter-mapping> <servlet-name>datatablesController</servlet-name>
<filter-name>httpMethodFilter</filter-name> <url-pattern>/datatablesController/*</url-pattern>
<servlet-name>petclinic</servlet-name> </servlet-mapping>
</filter-mapping>
<!-- Dandelion-Datatables filter definition -->
<filter>
<filter-name>datatablesFilter</filter-name>
<filter-class>com.github.dandelion.datatables.extras.servlet2.filter.DatatablesFilter</filter-class>
</filter>
<!-- Dandelion-Datatables filter mapping -->
<filter-mapping>
<filter-name>datatablesFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- used so we can use forms of method type 'PUT' and 'DELETE'
see here: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/view.html#rest-method-conversion
-->
<filter>
<filter-name>httpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>httpMethodFilter</filter-name>
<servlet-name>petclinic</servlet-name>
</filter-mapping>
</web-app> </web-app>