Post

Visualizzazione dei post da aprile, 2013

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"); } }