Allgemeines
HTML zu PDF mit iText
Die iText Bibliothek enthält zwei Klassen, die es erlauben, HTML in iText Elemente zu übersetzen, HTMLParser und HTMLWorker. Der Parser ist gedacht für das Parsen von kompletten HTML Dokumenten, während der Worker benutzt werden sollte, wenn nur Auszüge von HTML Code eingelesen werden soll. Beide sind recht begrenzt in ihren Möglichkeiten, reichen aber aus für [...]
Hibernate Criteria API
Eine Datenbank schön zu befragen geht zum Beispiel mit der Hibernate Criteria API unter Benutzung der Factory-Klasse Restrictions. So lässt sich beispielsweise die Anfrage für eine etwas umfangreichere Such- und Filterfunktion so zusammenbasteln:
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
[…]
List< Kunde > gefundeneKunden = sessionFactory.getCurrentSession()
.createCriteria(Kunde.class)
.add(Restrictions.ne("inaktiv", true))
.add(Restrictions.in("typ", search.getSelectedTypes()))
.add(Restrictions.eq("geschlecht", search.getGenderFilter()))
.add(Restrictions.between("datumLetzterKauf",search.getFromDate(),search.getUntilDate()))
[...]
UTF-8 Character Encoding
Soweit mir bekannt (und bei mir zu umfassendem Erfolg führend) gibt es drei Einstellungen, die man beachten muss, um seiner in Tomcat laufende Anwendung UTF-8 beizubringen.
1) Tomcat sollte die URL (und damit u.a. GET-Parameter) als UTF-8 kodieren. Dies wird über das URIEncoding Attribut des Connector Elements in der server.xml eingestellt.
<connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
URIEncoding="UTF-8"/>
2) [...]
@RequestMapping
Wie auch im API Eintrag zur @RequestMapping Annotation zu finden ist, lassen sich grobe Mappings auf Typebene (z.B. @RequestMapping(“/kunden/*”)) auf Methodenebene weiter spezialisieren. Dabei lässt sich als Parameter neben dem relativen Pfad (z.B. anlegen.do) auch die Art der Request angeben. Mappings könnten also so aussehen:
@RequestMapping(value="bearbeiten.do", method = RequestMethod.GET)
…
@RequestMapping(value="bearbeiten.do", method = RequestMethod.POST)
In einer Klasse, von der [...]
PDF Dokumente erzeugen – Konfiguration von Tiles2 und AbstractPdfView
Bisher hat meine Spring Anwendung ausschließlich Tiles2 als View Technologie benutzt. Dazu habe ich einen UrlBasedViewResolver konfiguriert wie folgt.
applicationContext.xml
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver"
p:viewClass="org.springframework.web.servlet.view.tiles2.TilesView"
p:order="2">
</bean>
Details zur Einrichtung von Tiles ist in der Spring Dokumentation zu finden (2.5, 3.0). Die zugehörige Tiles Konfigurationsdateien enthalten die Tiles Definitions, die zum Rendern aus den Controllern angesprochen werden können und beschreiben, [...]