<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Diegoitaliait&#039;s Blog</title>
	<atom:link href="http://diegoitaliait.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://diegoitaliait.wordpress.com</link>
	<description>Tutto quello che penso di sapere</description>
	<lastBuildDate>Fri, 09 Dec 2011 18:13:35 +0000</lastBuildDate>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='diegoitaliait.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Diegoitaliait&#039;s Blog</title>
		<link>http://diegoitaliait.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://diegoitaliait.wordpress.com/osd.xml" title="Diegoitaliait&#039;s Blog" />
	<atom:link rel='hub' href='http://diegoitaliait.wordpress.com/?pushpress=hub'/>
		<item>
		<title>[Log4j] performance utilizzando log.isDebugEnabled</title>
		<link>http://diegoitaliait.wordpress.com/2011/12/09/log4j-performance-utilizzando-log-isdebugenabled/</link>
		<comments>http://diegoitaliait.wordpress.com/2011/12/09/log4j-performance-utilizzando-log-isdebugenabled/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 18:06:15 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Log4j]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=249</guid>
		<description><![CDATA[Leggendo un bel articolo relativo ad una best practice di log4j per migliorare le performance, riporto qui la best practice: Molte volte si utilizza la tipica stringa per stampare un log In realtà si dovrebbe scrivere nel seguente modo: Il secondo esempio è più conveniente del primo in quanto il primo esempio genera comunque la <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=249&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Leggendo un bel articolo relativo ad una best practice di log4j per migliorare le performance, riporto qui la best practice:</p>
<p>Molte volte si utilizza la tipica stringa per stampare un log</p>
<p><pre class="brush: java;">
log.debug(&quot;Ciao mi chiamo: &quot; + nome);
</pre></p>
<p>In realtà si dovrebbe scrivere nel seguente modo:</p>
<p><pre class="brush: java;">
if(log.isDebugEnabled()) log.debug(&quot;Ciao mi chiamo: &quot; + nome);
</pre></p>
<p>Il secondo esempio è più conveniente del primo in quanto il primo esempio genera comunque la stringa, anche se il logger è disabilitato, utilizzando perciò inutilmente risorse.</p>
<p>Sempre nella stessa pagina (a opera di Peter Levart) è presente un bell&#8217;esempio di come migliorare questa best practice utilizzando la seguente porzione di codice:</p>
<p><pre class="brush: java;">
   private static final Log log = LogFactory.getLog(LogTest.class);
   private static final boolean DEBUG_ENABLED = log.isDebugEnabled();

   public void LOG()
   {
      if (DEBUG_ENABLED)
         log.debug(&quot;Ciao mi chiamo: &quot; + nome + &quot; e sono piu veloce di prima&quot;);

   }
</pre></p>
<p>Questo perchè l&#8217;informazione sullo stato booleano del log viene caricato la prima volta ed utilizzato come una costante.</p>
<p>Nel caso in cui si voglia invece settare questo controllo per esempio per i casi INFO o ERROR, sarà necessario utilizzare la seguente notazione:</p>
<p><pre class="brush: java;">
   private static final Log log = LogFactory.getLog(LogTest.class);
   private static final boolean ERROR_ENABLED = log.isEnabledFor(Level.ERROR);

   public void LOG()
   {
      if (ERROR_ENABLED)
         log.error(&quot;Ciao mi chiamo: &quot; + nome + &quot; e sono piu veloce di prima&quot;);
   }
</pre></p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=249&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2011/12/09/log4j-performance-utilizzando-log-isdebugenabled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>[wordpress.com] Inserire del codice sorgente all&#8217;interno dei post</title>
		<link>http://diegoitaliait.wordpress.com/2011/12/03/wordpress-com-inserire-del-codice-sorgente-allinterno-dei-post/</link>
		<comments>http://diegoitaliait.wordpress.com/2011/12/03/wordpress-com-inserire-del-codice-sorgente-allinterno-dei-post/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 15:03:49 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[wordpress.com]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=217</guid>
		<description><![CDATA[In wordpress.com esiste un modo per poter inserire il proprio codice sorgente nei post, per fare in modo che venga formattato con un css speciale che metta in risalto le varie righe e la formattazione stessa del codice: Per esempio si può inserire il seguente codice: #button { font-weight: bold; border: 2px solid #fff; } <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=217&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In wordpress.com esiste un modo per poter inserire il proprio codice sorgente nei post, per fare in modo che venga formattato con un css speciale che metta in risalto le varie righe e la formattazione stessa del codice:</p>
<p>Per esempio si può inserire il seguente codice:</p>
<blockquote><p>#button {<br />
font-weight: bold;<br />
border: 2px solid #fff;<br />
}</p></blockquote>
<p>E averlo formattato in questo modo:</p>
<p><pre class="brush: css;">
#button {font-weight: bold;border: 2px solid #fff;}
</pre></p>
<p>Ecco l&#8217;esempio del tag utilizzato (<strong>senza gli spazi dopo le parentesi quadre</strong>, altrimento non mi permetteva di scriverlo normalmente)</p>
<blockquote>
<pre>[ sourcecode language="css"]
#button {font-weight: bold;border: 2px solid #fff;}
[ /sourcecode]</pre>
</blockquote>
<p>bisogna pero utilizzare il TAB &#8220;HTML&#8221;, oppure selezionare le righe e passare da &#8220;paragrafo&#8221; a &#8220;preformattato&#8221;, altrimenti wordpress.com penserà che quello inserito e solo del semplice testo.</p>
<p>Qui sotto vi lascio il link di riferimento, con i vari linguaggi supportati</p>
<blockquote><p><a href="http://en.support.wordpress.com/code/posting-source-code/">http://en.support.wordpress.com/code/posting-source-code/</a></p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=217&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2011/12/03/wordpress-com-inserire-del-codice-sorgente-allinterno-dei-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>[ZK 3.6] Link e info utili per la paginazione</title>
		<link>http://diegoitaliait.wordpress.com/2011/12/03/zk-3-6-link-e-info-utili-per-la-paginazione/</link>
		<comments>http://diegoitaliait.wordpress.com/2011/12/03/zk-3-6-link-e-info-utili-per-la-paginazione/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 14:46:49 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[ZK]]></category>
		<category><![CDATA[Paging]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=211</guid>
		<description><![CDATA[Qui sono riportati un pò di link utili che possono servire quando si deve implementare la paginazione in zk 3.6.x http://books.zkoss.org/wiki/Small%20Talks/2008/December/Live%20Data,%20Paging,%20setModel%20and%20Implement%20your%20own%20renderer http://en.wikibooks.org/wiki/ZK/How-Tos/Concepts_and_Tricks#How_to_implement_paging_for_listboxes_with_many_items http://www.forsthaus.de/blog/?p=1 http://books.zkoss.org/wiki/Small_Talks/2009/May/Paging_Sorting_with_a_filter_object http://books.zkoss.org/wiki/Small_Talks/2008/June/Use_Load-On-Demand_to_Handle_Huge_Data http://www.zkoss.org/forum/listComment<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=211&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Qui sono riportati un pò di link utili che possono servire quando si deve implementare la paginazione in zk 3.6.x</p>
<ul>
<li><a href="http://books.zkoss.org/wiki/Small%20Talks/2008/December/Live%20Data,%20Paging,%20setModel%20and%20Implement%20your%20own%20renderer">http://books.zkoss.org/wiki/Small%20Talks/2008/December/Live%20Data,%20Paging,%20setModel%20and%20Implement%20your%20own%20renderer</a></li>
<li><a href="http://en.wikibooks.org/wiki/ZK/How-Tos/Concepts_and_Tricks#How_to_implement_paging_for_listboxes_with_many_items">http://en.wikibooks.org/wiki/ZK/How-Tos/Concepts_and_Tricks#How_to_implement_paging_for_listboxes_with_many_items</a></li>
<li><a href="http://www.forsthaus.de/blog/?p=1">http://www.forsthaus.de/blog/?p=1</a></li>
<li><a href="http://books.zkoss.org/wiki/Small_Talks/2009/May/Paging_Sorting_with_a_filter_object">http://books.zkoss.org/wiki/Small_Talks/2009/May/Paging_Sorting_with_a_filter_object</a></li>
<li><a href="http://books.zkoss.org/wiki/Small_Talks/2008/June/Use_Load-On-Demand_to_Handle_Huge_Data">http://books.zkoss.org/wiki/Small_Talks/2008/June/Use_Load-On-Demand_to_Handle_Huge_Data</a></li>
<li><a href="http://www.zkoss.org/forum/listComment/1873">http://www.zkoss.org/forum/listComment/1873</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/211/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=211&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2011/12/03/zk-3-6-link-e-info-utili-per-la-paginazione/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>[Liferay Strus Portlet] java.lang.NoSuchMethodException: No such accessible method: addFormBeanConfig()</title>
		<link>http://diegoitaliait.wordpress.com/2011/06/22/liferay-strus-portlet-java-lang-nosuchmethodexception-no-such-accessible-method-addformbeanconfig/</link>
		<comments>http://diegoitaliait.wordpress.com/2011/06/22/liferay-strus-portlet-java-lang-nosuchmethodexception-no-such-accessible-method-addformbeanconfig/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 15:20:41 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Liferay]]></category>
		<category><![CDATA[Liferay 5]]></category>
		<category><![CDATA[Liferay 6]]></category>
		<category><![CDATA[Struts]]></category>
		<category><![CDATA[Struts Portlet]]></category>
		<category><![CDATA[exception]]></category>
		<category><![CDATA[struts portlet]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=200</guid>
		<description><![CDATA[Nel momento in cui ho voluto replicare la &#8220;hello-strust-portlet&#8221; di liferay su: &#160; ide: netbeans 7 server: liferay 5.2.3 tomcat 6 framework: struts portlet 1.x Mi sono trovato con questo problema che mi ha dato non poche rogne: 15:03:12,960 ERROR [ActionServlet:768] Parsing error processing resource path /WEB-INF/struts-config.xml java.lang.NoSuchMethodException: No such accessible method: addFormBeanConfig() on object: <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=200&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nel momento in cui ho voluto replicare la &#8220;hello-strust-portlet&#8221; di liferay su:</p>
<p>&nbsp;</p>
<ul>
<li>ide: netbeans 7</li>
<li>server: liferay 5.2.3 tomcat 6</li>
<li>framework: struts portlet 1.x</li>
</ul>
<div>Mi sono trovato con questo problema che mi ha dato non poche rogne:</div>
<div>
<blockquote>
<pre>15:03:12,960 ERROR [ActionServlet:768] Parsing error processing resource path /WEB-INF/struts-config.xml
java.lang.NoSuchMethodException: No such accessible method: addFormBeanConfig() on object: org.apache.struts.config.impl.ModuleConfigImpl
	at org.apache.commons.digester.Digester.createSAXException(Digester.java:3181)
	at org.apache.commons.digester.Digester.createSAXException(Digester.java:3207)
	at org.apache.commons.digester.Digester.endElement(Digester.java:1225)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)</pre>
</blockquote>
</div>
<div>I passi da eseguire sono molto semplici:</div>
<div>
<ol>
<li>fermare il server;</li>
<li>eliminare la portlet che si vuole deployare;</li>
<li>cambiare il file<strong> liferay-plugin-package.properties </strong>cancellando nella voce &#8220;portal-dependency-jars&#8221; ogni riferimento a <em>struts.jar;</em></li>
<li>rieseguire il deploy della portlet, ed il gioco è fatto.</li>
</ol>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=200&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2011/06/22/liferay-strus-portlet-java-lang-nosuchmethodexception-no-such-accessible-method-addformbeanconfig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>[Liferay - Jboss] Settare il time zone corretto</title>
		<link>http://diegoitaliait.wordpress.com/2011/03/29/liferay-jboss-settare-il-time-zone-corretto/</link>
		<comments>http://diegoitaliait.wordpress.com/2011/03/29/liferay-jboss-settare-il-time-zone-corretto/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 10:03:47 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[Liferay]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=193</guid>
		<description><![CDATA[Molto spesso accade che presi dall&#8217;agitazione per la messa in produzione del nostro portale, ci dimentichiamo il settaggio della data, che in prima battuta può sembrare banale e in&#8217;influente; ma si rivela un boomerang quando dobbiamo poi controllare i nostri log per avere della reportistica corretta senza dover invece starci a scervellare su cosa possa <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=193&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Molto spesso accade che presi dall&#8217;agitazione per la messa in produzione del nostro portale, ci dimentichiamo il settaggio della data, che in prima battuta può sembrare banale e in&#8217;influente; ma si rivela un boomerang quando dobbiamo poi controllare i nostri log per avere della reportistica corretta senza dover invece starci a scervellare su cosa possa essere successo oppure se quel giorno il server puntava ad un orario più tosto che ad un altro, ancora peggio se quei log scrivono sul DB!.</p>
<p>Bene nel file run.conf (che si trova nella direttory principale dove è presente anche lo start.sh), tra le varie configurazioni è presente questo comando:</p>
<blockquote><p>-Duser.timezone=GMT</p></blockquote>
<p>Dovrete cambiarlo in</p>
<blockquote><p>-Duser.timezone=Europe/Rome</p></blockquote>
<p>Questo permetterà al server di Jboss di reperire la data correttà non solo al netto del fuso orario, ma anche dell&#8217;ora legale.</p>
<p>&nbsp;</p>
<p>Vi lascio un paio di link per consultazione, dove sono presenti tutte le liste dei time zone tra l&#8217;altro:</p>
<ul>
<li><a href="http://www.liferay.com/web/guest/community/forums/-/message_boards/message/2309240">http://www.liferay.com/web/guest/community/forums/-/message_boards/message/2309240</a></li>
<li><a href="http://bytes.com/topic/java/answers/15954-alphabetic-java-time-zones-continent-ocean-city-format">http://bytes.com/topic/java/answers/15954-alphabetic-java-time-zones-continent-ocean-city-format</a></li>
</ul>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/193/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=193&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2011/03/29/liferay-jboss-settare-il-time-zone-corretto/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>[Struts 1.2 Portlet] Multibox reset problemi quando non si seleziona nessun elemento.</title>
		<link>http://diegoitaliait.wordpress.com/2011/01/19/struts-1-2-portlet-multibox-reset-problemi-quando-non-si-seleziona-nessun-elemento/</link>
		<comments>http://diegoitaliait.wordpress.com/2011/01/19/struts-1-2-portlet-multibox-reset-problemi-quando-non-si-seleziona-nessun-elemento/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 16:18:54 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Struts]]></category>
		<category><![CDATA[Liferay]]></category>
		<category><![CDATA[Portlet]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=190</guid>
		<description><![CDATA[Quando si ha la situazione in qui si ha il seguente codice: Dove il perlaForm è un form che viene tenuto in sessione. Se nella jsp, ho selezionato dei valori dei checkbox, quando torno indietro e non seleziono nulla, STRUTS non aggiorna l&#8217;array di selezione con un array vuoto, ma ben si mantiene i dati <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=190&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quando si ha la situazione in qui si ha il seguente codice:</p>
<p><pre class="brush: xml;">
&lt;html:multibox name=&quot;perlaForm&quot;
property=&quot;arrayIstituti&quot;
value='${rib.idRilevazioneIstituto}'
tabindex='&lt;%=String.valueOf(tabIndex++) %&gt;'
styleId=&quot;id:radio_${i}&quot;/&gt;
</pre></p>
<p>Dove il perlaForm è un form che viene tenuto in sessione.</p>
<p>Se nella jsp, ho selezionato dei valori dei checkbox, quando torno indietro e non seleziono nulla, STRUTS non aggiorna l&#8217;array di selezione con un array vuoto, ma ben si mantiene i dati nella sessione, rendendo i dati al suo interno inconsistenti.</p>
<p>Per evitare questo problema bisogne resettare l&#8217;array della multibox manualmente;</p>
<blockquote><p>form.setArrayIstituti(null);</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=190&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2011/01/19/struts-1-2-portlet-multibox-reset-problemi-quando-non-si-seleziona-nessun-elemento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>[Tips] Liferay 5.2.4 &amp; Struts 1.2 portlet</title>
		<link>http://diegoitaliait.wordpress.com/2010/10/31/tips-liferay-5-2-4-struts-1-2-portlet/</link>
		<comments>http://diegoitaliait.wordpress.com/2010/10/31/tips-liferay-5-2-4-struts-1-2-portlet/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 18:13:11 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=178</guid>
		<description><![CDATA[Qui riporto alcune tips, che possono essere utili, soprattutto la prima volta che si approccia a liferay: Gestiore gli oggetti nella session: Per salvare un oggetto nella sessione della propria portlet: request.getPortletSession().setAttribute(&#8220;url&#8221;,url); (vale sia per il render, che per il proccess action) Per riprenderlo successivamente nelle pagine: ${pageScope.portletSessionScope.urlHomeAdempienza} oppure: ${portletSessionScope.urlHomeAdempienza} &#160; Utilizzare liferay-ui:message invece di LanguageUtil.get(pageContext, <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=178&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Qui riporto alcune tips, che possono essere utili, soprattutto la prima volta che si approccia a liferay:</p>
<h3>Gestiore gli oggetti nella session:</h3>
<p style="padding-left:30px;">Per salvare un oggetto nella sessione della propria portlet:</p>
<blockquote style="padding-left:30px;"><p>request.getPortletSession().setAttribute(&#8220;url&#8221;,url); (vale sia per il render, che per il proccess action)</p></blockquote>
<p style="padding-left:30px;">Per riprenderlo successivamente nelle pagine:</p>
<blockquote style="padding-left:30px;"><p>${pageScope.portletSessionScope.urlHomeAdempienza}</p>
<p>oppure:</p>
<p>${portletSessionScope.urlHomeAdempienza}</p></blockquote>
<p>&nbsp;</p>
<h3>Utilizzare liferay-ui:message invece di LanguageUtil.get(pageContext, &#8220;message.error&#8221;)</h3>
<p style="padding-left:30px;">All&#8217;interno di liferay è possibile utilizzare all&#8217;interno delle jsp</p>
<blockquote>
<p style="padding-left:30px;">&lt;%= LanguageUtil.get(pageContext, &#8220;message.error&#8221;) %&gt;</p>
</blockquote>
<p style="padding-left:30px;">per visualizzare la chiave &#8220;message.error&#8221; contenuta nel file di properties che devono mappare i veri messaggi seguendo la specifica I18N</p>
<p style="padding-left:30px;">E&#8217; possibile pero anche utilizzare la seguente sintassi:</p>
<blockquote><p>&lt;liferay-ui:message key=&#8221;message.error&#8221;/&gt;</p></blockquote>
<p style="padding-left:30px;">Nel caso in cui per esempio il nostro message.error avesse in ingresso uno o più parametri di ingresso per personalizzare il messaggio ad esempio:</p>
<blockquote>
<p style="padding-left:30px;">message.error = L&#8217;errore è {0}</p>
<p style="padding-left:30px;">Allora possiamo utilizzare</p>
<p style="padding-left:30px;">&lt;liferay-ui:message key=&#8221;message.error&#8221; arguments=&#8217;&lt;%= new Object[] {&#8220;grave&#8221;} %&gt;&#8217;  /&gt;</p>
</blockquote>
<p style="padding-left:30px;">&nbsp;</p>
<blockquote>
<p style="padding-left:30px;">message.error = L&#8217;errore è {0}, contattare {1}</p>
<p style="padding-left:30px;">Possiamo allora utilizzare</p>
<p style="padding-left:30px;">&lt;liferay-ui:message arguments=&#8217;&lt;%= new Object[] {&#8220;grave&#8221;,&#8221;help desk&#8221;} %&gt;&#8217; key=&#8221;message.error&#8221; /&gt;</p>
</blockquote>
<p><span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;font-size:small;"><span style="font-size:12px;line-height:18px;white-space:pre;"><br />
</span></span></p>
<blockquote>
<p style="padding-left:30px;">&nbsp;</p>
<p style="padding-left:30px;">&nbsp;</p>
</blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/178/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=178&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2010/10/31/tips-liferay-5-2-4-struts-1-2-portlet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>Tips Windows PowerShell</title>
		<link>http://diegoitaliait.wordpress.com/2010/10/26/tips-windows-powershell/</link>
		<comments>http://diegoitaliait.wordpress.com/2010/10/26/tips-windows-powershell/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 08:12:40 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=181</guid>
		<description><![CDATA[Alias: creare un alias, per evitare di scrivere codice ridondante. Set-Alias &#60;Nome alias&#62; &#60;Comando che deve essere implementato nell&#8217;alias&#62; es: Set-Alias ls dir<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=181&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h4>Alias: creare un alias, per evitare di scrivere codice ridondante.</h4>
<blockquote><p><strong>Set-Alias</strong> &lt;Nome alias&gt; &lt;Comando che deve essere implementato nell&#8217;alias&gt;</p>
<p>es:</p>
<p>Set-Alias ls dir</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=181&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2010/10/26/tips-windows-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>[Tips] Recuperare beans, risorse e altro da spring 3</title>
		<link>http://diegoitaliait.wordpress.com/2010/09/20/tips-recuperare-bean-risorse-spring_3/</link>
		<comments>http://diegoitaliait.wordpress.com/2010/09/20/tips-recuperare-bean-risorse-spring_3/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 16:29:01 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[ROO]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[applicationContext.xml]]></category>
		<category><![CDATA[bean]]></category>
		<category><![CDATA[Roo]]></category>
		<category><![CDATA[Spring 3]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=174</guid>
		<description><![CDATA[Questa mini guida illustrerà i vari modi in cui è possibile recuperare risorse varie che sono presenti in spring. Supponendo che il nostro classpath abbia la seguente gerarchia: src &#62; main &#62; resources &#62;META-INF &#62; spring, come definito all&#8217;interno dei progetti creati con ROO 1.0.2. Recuperare l&#8217;applicationContext.xml private static final String urlApplicationContext = &#8220;META-INF//spring//applicationContext.xml&#8221;; oppure <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=174&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Questa mini guida illustrerà i vari modi in cui è possibile recuperare risorse varie che sono presenti in spring.</p>
<p>Supponendo che il nostro classpath abbia la seguente gerarchia: src &gt; main &gt; resources &gt;META-INF &gt; spring, come definito all&#8217;interno dei progetti creati con ROO 1.0.2.</p>
<h3>Recuperare l&#8217;applicationContext.xml</h3>
<blockquote><p>private static final String <strong>urlApplicationContext</strong> = &#8220;META-INF//spring//applicationContext.xml&#8221;;</p>
<p><span style="text-decoration:underline;">oppure</span></p>
<p>private static final String <strong>urlApplicationContext</strong> = &#8220;classpath:META-INF/spring/applicationContext.xml&#8221;;</p>
<p>ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(<strong>urlApplicationContext</strong>);</p></blockquote>
<p>In questo modo ottengo un oggetto ClassPathXmlApplicationContext che ci permette di gestire gli elementi che sono stati definiti all&#8217;interno dell&#8217;applicationContext.xml, oltre ad avere la possibilità di gestione del context di spring.</p>
<h3>Recuperare un bean dall&#8217;applicationContext.xml</h3>
<p>Semplicemente si dovrà instanziare il context descritto all&#8217;inizio e richiamare il bean tramite il suo ID:</p>
<blockquote><p>Person p = (Person) context.getBean(&#8220;Id del Bean&#8221;);</p></blockquote>
<h3>Recuperare un file dal classpath</h3>
<p>Per recuperare un file che sappiamo sia presente all&#8217;interno del nostro classpath basterà fare.</p>
<blockquote>
<div id="_mcePaste">private static final String urlClasspathSpringOXM = &#8220;classpath:META-INF//spring//&#8221;;</div>
<div>ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(<strong>urlApplicationContext</strong>);</div>
<div id="_mcePaste">Resource resource = context.getResource(urlClasspathSpringOXM+filename);</div>
</blockquote>
<div>Il metodo getResource, restituisce l&#8217;oggetto Resource relativo al file a cui stiamo puntando. Ed effettuare una serie di operazioni su di esso come ad esempio la richiesta di informazioni sul suo nome, o sulla possibilità di poterlo leggere, oppure richiamare il metodo <strong>getFile() </strong>che restituisce un oggetto di tipo FILE, che ci permette di lavorare sul file.</div>
<div></div>
<div></div>
<div></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=174&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2010/09/20/tips-recuperare-bean-risorse-spring_3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
		<item>
		<title>[Guida] Validazione con Spring 3</title>
		<link>http://diegoitaliait.wordpress.com/2010/09/20/guida-validazione-con-spring-3/</link>
		<comments>http://diegoitaliait.wordpress.com/2010/09/20/guida-validazione-con-spring-3/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 10:59:02 +0000</pubDate>
		<dc:creator>diegoitaliait</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[ROO]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Validation]]></category>
		<category><![CDATA[Roo]]></category>
		<category><![CDATA[Spring 3]]></category>
		<category><![CDATA[Spring MVC]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[validator]]></category>

		<guid isPermaLink="false">http://diegoitaliait.wordpress.com/?p=160</guid>
		<description><![CDATA[All&#8217;interno di Spring 3 è stato notevolmente potenziato il sistema di validazione, portandolo a recepire la JSR-303 (che si occupa proprio di definire le specifiche del bean validator). Link di Interesse Prima di cominciare voglio presentare alcuni link molto utili che possono servire per la consultazione: http://blog.jteam.nl/2009/08/04/bean-validation-integrating-jsr-303-with-spring/ (Un post molto valido e completo, pieno di <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=160&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>All&#8217;interno di Spring 3 è stato notevolmente potenziato il sistema di validazione, portandolo a recepire la JSR-303 (che si occupa proprio di definire le specifiche del bean validator).</p>
<h3>Link di Interesse</h3>
<p>Prima di cominciare voglio presentare alcuni link molto utili che possono servire per la consultazione:</p>
<ul>
<li><a href="http://blog.jteam.nl/2009/08/04/bean-validation-integrating-jsr-303-with-spring/">http://blog.jteam.nl/2009/08/04/bean-validation-integrating-jsr-303-with-spring/</a> (Un post molto valido e completo, pieno di esempi anche a livello avanzato)</li>
<li><a href="http://www.openscope.net/2010/02/08/spring-mvc-3-0-and-jsr-303-aka-javax-validation/">http://www.openscope.net/2010/02/08/spring-mvc-3-0-and-jsr-303-aka-javax-validation/</a></li>
<li><a href="http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-example/">http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-example/</a></li>
<li><a href="http://blog.springsource.com/2009/03/03/building-spring-3/">http://blog.springsource.com/2009/03/03/building-spring-3/</a></li>
</ul>
<h3>Utilizzo Base del Validation</h3>
<p>Utilizzando ROO 1.0.2, di default ti permette di creare BEAN che utilizzino la JSR-303 e le specifiche di ejb 3.</p>
<p>Ad esempio è possibile avere il seguente bean:</p>
<blockquote>
<div id="_mcePaste">public class Utente {</div>
<div style="padding-left:30px;">// Impone che il campo sia not null<br />
@NotNull</div>
<div id="_mcePaste" style="padding-left:30px;">private String nome;<br />
// Il valora del campo deve seguire  il patter della espressione regolare</div>
<div style="padding-left:30px;"><span style="line-height:18px;font-size:13px;"><span style="color:#000000;">@Pattern(regexp=”[a-z]+”)</span></span></div>
<div id="_mcePaste" style="padding-left:30px;">private String gruppo;<br />
// il valore del campo deve seguire la espressione regolare standard per l&#8217;email</div>
<div style="padding-left:30px;">@email</div>
<div id="_mcePaste" style="padding-left:30px;">private String email;</div>
<div id="_mcePaste">}</div>
</blockquote>
<p>Questa impostazione del bean ci permette di utilizzare da subito il validation integrato in spring, in modo da eseguire un controllo immediato sulla consistenza dei campi del bean.<br />
Ad esempio è possibile creare un controller del tipo:</p>
<blockquote><p>@RequestMapping(value = &#8220;/utente&#8221;, method = RequestMethod.POST)</p>
<p>public String UtenteController.create(<strong>@Valid</strong> Utente utente, BindingResult result, ModelMap modelMap) {</p>
<p style="padding-left:30px;">if (utente == null) throw new IllegalArgumentException(&#8220;A utente is required&#8221;);</p>
<p style="padding-left:30px;">if (result.hasErrors()) {</p>
<p style="padding-left:60px;">modelMap.addAttribute(&#8220;utente&#8221;, utente);</p>
<p style="padding-left:60px;">&#8230;&#8230;</p>
<p style="padding-left:90px;">&#8230;&#8230;</p>
<p style="padding-left:60px;">return &#8220;utente/create&#8221;;</p>
<p style="padding-left:30px;">}</p>
<p style="padding-left:30px;">utente.persist();</p>
<p style="padding-left:30px;">return &#8220;redirect:/utente/&#8221; + utente.getIdUtente();</p>
<p>}</p></blockquote>
<p>Questo esempio di controller utilizza l&#8217;annotation <strong>javax.validation.Valid </strong><strong>&#8220;@Valid&#8221; </strong>che permette di verificare che l&#8217;oggetto relativo (Utente) inviato da un form ipotetico, segua le indicazioni definite all&#8217;interno del bean. l&#8217;esempio ci mostra come utilizzare da subito la validazione, ma purtroppo ha dei limiti legati al fatto che cosi com&#8217;è stato definito il bean può coprire solo una parte delle specifiche di bussiness.</p>
<h3>Validatore Personalizzato</h3>
<p>Per poter implementare un proprio validation è necessario:</p>
<p>1 &#8211; Definire all&#8217;interno dell&#8217;applicationContext.xml i bean che abilitano il validation personalizzato</p>
<blockquote><p><span style="white-space:pre;"> </span>&lt;!&#8211;     Invokes Spring MVC @Controller methods &#8211;&gt;</p>
<p><span style="white-space:pre;"> </span>&lt;bean class=&#8221;org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter&#8221;&gt;</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span> &lt;property name=&#8221;webBindingInitializer&#8221;&gt;</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span>&lt;!&#8211; Configures Spring MVC DataBinder instances &#8211;&gt;</p>
<p style="padding-left:60px;"><span style="white-space:pre;"> </span> &lt;bean class=&#8221;org.springframework.web.bind.support.ConfigurableWebBindingInitializer&#8221;&gt;</p>
<p style="padding-left:90px;"><span style="white-space:pre;"> </span> &lt;property name=&#8221;validator&#8221; ref=&#8221;validator&#8221; /&gt;</p>
<p style="padding-left:60px;"><span style="white-space:pre;"> </span> &lt;/bean&gt;</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span> &lt;/property&gt;</p>
<p><span style="white-space:pre;"> </span>&lt;/bean&gt;</p>
<p><span style="white-space:pre;"> </span>&lt;!&#8211;<span style="white-space:pre;"> </span> Creates the JSR-303 Validator &#8211;&gt;</p>
<p><span style="white-space:pre;"> </span>&lt;bean id=&#8221;validator&#8221; class=&#8221;com.springsource.roo.pizzashop.validation.UtenteValidator&#8221; /&gt;</p></blockquote>
<p>2 &#8211; Creare la classe &#8220;UtenteValidator&#8221; (definita all&#8217;interno dell&#8217;applicationContext) che permette di sviluppare la nostra validazione personalizzata.</p>
<blockquote><p>public class UtenteValidator implements Validator{</p>
<p><span style="white-space:pre;"> </span><strong>@Override</strong></p>
<p><span style="white-space:pre;"><strong> </strong></span><strong>public boolean supports(Class clazz) {</strong><span style="white-space:pre;"><strong> </strong></span></p>
<p><span style="white-space:pre;"><strong> </strong></span><strong>return Utente.class.isAssignableFrom(clazz);</strong></p>
<p><span style="white-space:pre;"><strong> </strong></span><strong>}</strong></p>
<p><span style="white-space:pre;"> </span>@Override</p>
<p><span style="white-space:pre;"> </span>public void <strong>validate</strong>(Object target, Errors errors) {</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span>System.out.println(&#8220;Sono dentro il validator&#8221;);</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span></p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span>// Validazione del campo Utente.nome tramite le Utils di Validation</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span><strong>ValidationUtils.rejectIfEmptyOrWhitespace</strong>(errors, &#8220;nome&#8221;, &#8220;error.utente.vuoto&#8221;, &#8220;Il campo utente e&#8217; richiesto&#8221;);</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span></p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span>// Validazione personalizzata per l&#8217;oggetto utente ed le sue proprietà in</p>
<p style="padding-left:30px;">// questo modo posso implementare le logiche di bussiness come<span style="white-space:pre;"> </span>Utente utente = (Utente)target;</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span>if( (utente.getNome().equals(&#8220;&#8221;)) &amp;&amp; utente.getGruppo().equals(&#8220;&#8221;) ){</p>
<p style="padding-left:60px;"><strong>errors.rejectValue</strong>(&#8220;gruppo&#8221;, &#8220;error.utente.gruppo&#8221;);</p>
<p style="padding-left:30px;"><span style="white-space:pre;"> </span>}</p>
<p>}</p>
<p>}</p></blockquote>
<p>All&#8217;interno della classe abbiamo fatto l&#8217;override di due metodi:</p>
<ul>
<li>supports: dove posso specificare a quale classe associare il mi validator;</li>
<li>validate: dove implemento i vari controlli che devo eseguire sui campi, e le relative logiche.</li>
</ul>
<p>Il nostro controller visto precedentemente deve cambiare nel seguente modo:</p>
<blockquote><p>@RequestMapping(value = &#8220;/utente&#8221;, method = RequestMethod.POST)</p>
<p>public String UtenteController.create(<strong>@ModelAttribute(&#8220;utente&#8221;) Utente utente</strong>, BindingResult result, ModelMap modelMap) {</p>
<p style="padding-left:30px;">if (utente == null) throw new IllegalArgumentException(&#8220;A utente is required&#8221;);</p>
<p style="padding-left:30px;">// Chiamo il validatore per l&#8217;oggetto utente</p>
<p style="padding-left:30px;"><strong>validator.validate(utente, result);</strong></p>
<p style="padding-left:30px;">if (result.hasErrors()) {</p>
<p style="padding-left:30px;">modelMap.addAttribute(&#8220;utente&#8221;, utente);</p>
<p style="padding-left:30px;">return &#8220;utente/create&#8221;;</p>
<p style="padding-left:30px;">}</p>
<p style="padding-left:30px;">utente.persist();</p>
<p style="padding-left:30px;">return &#8220;redirect:/utente/&#8221; + utente.get_id();</p>
<p>}</p></blockquote>
<p>I cambiamenti più vistosi (segnati in grassetto) sono:</p>
<ul>
<li>la presenza del @ModelAttribute al posto del @Valid, che permette di catturare l&#8217;oggetto inviato da un form senza però eseguire il validator integrato;</li>
<li>validator.validate: che permette di chiamare il validator personalizzato che abbiamo creato inviando l&#8217;oggetto da verificare</li>
</ul>
<p>3 &#8211; La pagina con la quale comunicherà il nostro controller sarà composta nel seguente modo:</p>
<blockquote><p>&lt;spring:url value=&#8221;/utente&#8221; var=&#8221;form_url&#8221;/&gt;</p>
<p>&lt;form:form action=&#8221;${form_url}&#8221; method=&#8221;POST&#8221; modelAttribute=&#8221;utente&#8221;&gt;</p>
<p style="padding-left:30px;">&lt;form:errors cssClass=&#8221;errors&#8221; delimiter=&#8221;&amp;lt;p/&amp;gt;&#8221;/&gt;</p>
<p style="padding-left:30px;">&lt;div id=&#8221;roo_utente_nome&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;label for=&#8221;_nome_id&#8221;&gt;Nome:&lt;/label&gt;</p>
<p style="padding-left:60px;">&lt;form:input cssStyle=&#8221;width:250px&#8221; id=&#8221;_nome_id&#8221; maxlength=&#8221;30&#8243; path=&#8221;nome&#8221; size=&#8221;0&#8243;/&gt;</p>
<p style="padding-left:60px;">&lt;br/&gt;</p>
<p style="padding-left:60px;">&lt;form:errors cssClass=&#8221;errors&#8221; id=&#8221;_nome_error_id&#8221; path=&#8221;nome&#8221;/&gt;</p>
<p style="padding-left:30px;">&lt;/div&gt;</p>
<p style="padding-left:30px;">&lt;br/&gt;</p>
<p style="padding-left:30px;">&lt;div id=&#8221;roo_utente_gruppo&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;label for=&#8221;_gruppo_id&#8221;&gt;Gruppo:&lt;/label&gt;</p>
<p style="padding-left:60px;">&lt;form:input cssStyle=&#8221;width:250px&#8221; id=&#8221;_gruppo_id&#8221; maxlength=&#8221;30&#8243; path=&#8221;gruppo&#8221; size=&#8221;0&#8243;/&gt;</p>
<p style="padding-left:60px;">&lt;br/&gt;</p>
<p style="padding-left:60px;">&lt;form:errors cssClass=&#8221;errors&#8221; id=&#8221;_gruppo_error_id&#8221; path=&#8221;gruppo&#8221;/&gt;</p>
<p style="padding-left:30px;">&lt;/div&gt;</p>
<p style="padding-left:30px;">&lt;br/&gt;</p>
<p style="padding-left:30px;">&lt;div id=&#8221;roo_utente_email&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;label for=&#8221;_id_email&#8221;&gt;email:&lt;/label&gt;</p>
<p style="padding-left:60px;">&lt;form:input cssStyle=&#8221;width:250px&#8221; id=&#8221;_id_email&#8221; maxlength=&#8221;30&#8243; path=&#8221;email&#8221; size=&#8221;0&#8243;/&gt;</p>
<p style="padding-left:60px;">&lt;br/&gt;</p>
<p style="padding-left:60px;">&lt;form:errors cssClass=&#8221;errors&#8221; id=&#8221;_email_error_id&#8221; path=&#8221;email&#8221;/&gt;</p>
<p style="padding-left:30px;">&lt;/div&gt;</p>
<p style="padding-left:30px;">&lt;br/&gt;</p>
<p style="padding-left:30px;">&lt;div class=&#8221;submit&#8221; id=&#8221;roo_utente_submit&#8221;&gt;</p>
<p style="padding-left:30px;">&lt;input id=&#8221;proceed&#8221; type=&#8221;submit&#8221; value=&#8221;Salva&#8221;/&gt;</p>
<p style="padding-left:30px;">&lt;/div&gt;</p>
<p>&lt;/form:form&gt;</p></blockquote>
<p>La nostra pagina utilizza i tag di spring, quali:</p>
<ul>
<li>form =  dove si definisce il bean che deve essere associato al form stesso;</li>
<li>form:input = il campo input che rappresenta una della proprietà del mio bean;</li>
<li>form:error = Questo tag è molto importante per la validazione, in quanto mostra a video la label di errore che viene viene generata dalla nostra classe di validazione.</li>
</ul>
<p><strong> </strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegoitaliait.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegoitaliait.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegoitaliait.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegoitaliait.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/diegoitaliait.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/diegoitaliait.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/diegoitaliait.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/diegoitaliait.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegoitaliait.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegoitaliait.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegoitaliait.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegoitaliait.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegoitaliait.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegoitaliait.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegoitaliait.wordpress.com&amp;blog=6512922&amp;post=160&amp;subd=diegoitaliait&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://diegoitaliait.wordpress.com/2010/09/20/guida-validazione-con-spring-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0b0b7cbd6843e7326fe7e8bf3d266cf2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegoitaliait</media:title>
		</media:content>
	</item>
	</channel>
</rss>
