Post

Rappresentare le Date in Java con Apache Commons DateFormatUtils

Immagine
DOMANDA: Come posso personalizzare le date in Java? RISPOSTA: Dopo aver visto come utilizzare le date con il SimpleDateFormat , passiamo a vedere una possibile alternativa fornita da un package di Apache Commons  contenente l'oggetto DateFormatUtils . Per utilizzarlo è necessario scaricare commons-lang3-3.1.jar (versione testata in questo post). Dopo aver settato il build path del progetto ed importato il jar appena scaricato, guardiamo nell'esempio come rappresentare le date in maniera semplice e veloce: package date; import java.util.Calendar; import java.util.Date; import org.apache.commons.lang3.time.DateFormatUtils; public class DateFormatUtilsTest { public static void main(String[] args) { // utilizziamo DateFormatUtils con la data odierna String dataOdierna = DateFormatUtils.format((new java.util.Date()), "MM/dd"); System.out.println("dataOdierna = " + dataOdierna); // impostiamo la data a nostro pi

Rappresentare le Date in Java con SimpleDateFormat

Immagine
DOMANDA: Come posso rappresentare le date in Java? RISPOSTA: Java ha una molteplicità di oggetti che gestiscono le date , qualcuno con un funzionamento intuitivo, altri meno. Un tentativo di semplificare la loro gestione è fornito dalla classe SimpleDateFormat ( java.text.SimpleDateFormat ). Vediamo come funziona con il seguente esempio SimpleDateFormatTest : package date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class SimpleDateFormatTest { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat(); // creo l'oggetto // primo pattern: 2009, 12, 09 sdf.applyPattern("yyyy, MM, dd"); Date data = sdf.parse("2009, 12, 9"); String dataStringa = sdf.format(data); System.out.println(dataStringa); // modifico il pattern: 2009-12-09 sdf.applyPattern("yyyy-MM-dd");

Ordinamento HashMap basato su proprietà custom

DOMANDA: Come posso ordinare un HashMap basandomi su una proprietà degli oggetti che contiene? RISPOSTA: E' possibile eseguire un ordinamento di un HashMap basato su una proprietà dei suoi oggetti attraverso l'utilizzo di due elementi: Comparator TreeMap Innanzitutto creiamo un bean per rappresentare gli elementi da ordinare in base ad una proprietà. Il bean sarà Tab e la proprietà position . Come avrete intuito, faremo l'ordinamento di una serie di tab come quelli che troviamo in quasi tutte le interfacce grafiche dei moderni siti web. La nostra lista di tab (non ordinata) sarà la seguente: Portfolio Home Contatti Chi siamo Da ordinare nel seguente modo: Home Chi siamo Portfolio Contatti Innanzitutto creiamo il bean Tab : public class Tab { private int position; public Tab(int position) { this.position=position; } public int getPosition() { return position; } public void setPosition(int position) { this.position

Java Application per ridimensionamento immagine in proporzione

DOMANDA: Come posso ridimensionare un'immagine rispettando le sue proporzioni? RISPOSTA: Di seguito una breve guida per creare una piccola Java Application che visualizza un'immagine ridimensionata rispettando le sue proporzioni.  L'applicazione inoltre salva l'immagine su disco attraverso il metodo saveImage() . Il codice utilizza il metodo getScaledDimension()  riportato su StackOverflow . import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.WindowConstants; public class ImageResizeProportionally { public static void main(String[] args) { String path_immagine = "C:\\mia_immagine.jpg"; BufferedImage srcImage; try {

Problemi sendRedirect con reverse proxy?

DOMANDA: Come posso evitare l'utilizzo di sendRedirect quando questa istruzione crea problemi in un ambiente con reverse proxy? RISPOSTA: Si può sostituire l'istruzione response.sendRedirect(url_path) impostando gli header della response HTTP . Gli header da impostare sono: Location Status Code il codice da utilizzare è il 302 - Moved Temporarily Vediamo come: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class SomeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); response.setHeader("Location", "/mia_pagina.jsp"); } }

Creare PDF da un XML con Apache FOP 1.1

DOMANDA: Come si crea un PDF da un file XML? RISPOSTA: E' possibile creare un PDF a partire da un XML con Apache FOP 1.1 , ultima versione attualmente disponibile. E' indispensabile sapere che per la trasformazione è necessario un file "intermedio" .xsl utilizzato come template (modello) in cui vengono conservate le informazioni di impaginazione. Come al solito, guardiamo con degli esempi ad hoc  ogni singolo step anche se, in questo post, si da per scontata una conoscenza basilare di xml ed xsl . La seguente classe Xml2Pdf trasforma l' XML in PDF grazie alle informazioni contenute nel .xsl : package fop; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.sax.SAXResu

Differenza tra JRE e JDK

DOMANDA: Che differenza c'è tra Java Runtime Environment (JRE) e Java Development Kit (JDK)? RISPOSTA: Se la vostra esigenza è quella di eseguire delle applicazioni Java , è sufficiente la JRE . Infatti Java Runtime Enviroment è un'implementazione della Java Virtual Machine (JVM) necessaria per far girare i programmi Java sul vostro calcolatore. E' quindi necessaria la JRE per eseguire ad esempio Eclipse , le applet , Tomcat , ecc... La JDK invece è indispensabile nel caso voi abbiate la necessità di sviluppare software Java. Infatti la JDK contiene al suo interno una o più JRE e  tutti gli applicativi utili per la programmazione in Java: debuggers, compilatori come javac, librerie per lo sviluppo, ecc... Sono entrambe gratuite e scaricabili dal sito ufficiale  Oracle Java . NOTA : per Eclipse è sufficiente la JRE perché al suo interno contiene già il compilatore, le librerie e i tools necessari al programmatore.