<?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>jEE work</title>
	<atom:link href="http://jeemaster.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeemaster.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 25 Sep 2010 06:30:35 +0000</lastBuildDate>
	<language>ro</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jeemaster.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>jEE work</title>
		<link>http://jeemaster.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jeemaster.wordpress.com/osd.xml" title="jEE work" />
	<atom:link rel='hub' href='http://jeemaster.wordpress.com/?pushpress=hub'/>
		<item>
		<title>AOP cu aspectJ</title>
		<link>http://jeemaster.wordpress.com/2010/01/16/aop-cu-aspectj/</link>
		<comments>http://jeemaster.wordpress.com/2010/01/16/aop-cu-aspectj/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 17:08:48 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=70</guid>
		<description><![CDATA[Am sa scriu cateva randuri despre folosirea aspectj in ECLIPSE. Am schimbat mediul de lucru pentru ca NetBeans nu are plugin pentru aspectj decat in versiunea 6.0 si la momentul la care scriu versiunea curenta e 6.8, deci o sa folosesc Eclipse 3.5 si aspectj. Eclipse se gaseste aici. Aspectj pentru Eclipse se gaseste aici. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=70&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Am sa scriu cateva randuri despre folosirea aspectj in ECLIPSE. Am schimbat mediul de lucru pentru ca NetBeans nu are plugin pentru aspectj decat in versiunea 6.0 si la momentul la care scriu versiunea curenta e 6.8, deci o sa folosesc Eclipse 3.5 si aspectj.</p>
<p>Eclipse se gaseste <a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR1/eclipse-jee-galileo-SR1-win32.zip">aici</a>.<br />
Aspectj pentru Eclipse se gaseste <a href="http://www.eclipse.org/ajdt/downloads/">aici</a>. Pentru cei care nu stiu cum sa instaleze un plugin in eclipse vedeti <a href="http://www.venukb.com/2006/08/20/install-eclipse-plugins-the-easy-way/">asta</a>.</p>
<p>Dupa ce ati instalat acest plugin e foarte simplu. Puteti sa faceti un proiect java, apoi o clasa Main, cu niste metode, si apoi un Aspect. Din meniu File -&gt; New -&gt; Aspect.<br />
O un aspect simplu arata asa:</p>
<pre>public aspect WorkerA {
	pointcut timing() : execution(* main.Main.*());

	before() : timing() {
		System.out.println("Inainte de metoda");
	}

	after() : timing() {
		System.out.println("Dupa apelarea metodei");
	}
}</pre>
<p>Pentru a intelege mai bine ce e cu acel pointcut si cu expresia regulata data ca parametru puteti citi un nicte cartulii in domeniu. (<a href="http://katz.cd/search/aspectj">hint</a>).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=70&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2010/01/16/aop-cu-aspectj/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>
	</item>
		<item>
		<title>Cate ceva despre RMI si JMS</title>
		<link>http://jeemaster.wordpress.com/2009/12/03/cate-ceva-despre-rmi-si-jms/</link>
		<comments>http://jeemaster.wordpress.com/2009/12/03/cate-ceva-despre-rmi-si-jms/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 12:22:01 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[JMS RMI]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=64</guid>
		<description><![CDATA[Linkuri utile RMI - de la sun - de la bucknell - de la coffeebreak (colorat) - alt blog jurnal (in romana). - de la redhat si cateva despre jms - de la sun - de la alt blogger (recomandat) - de la un indian - de la oracle. Un tutorial foarte bun pt cine [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=64&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Linkuri utile RMI<br />
-  de la <a href="http://java.sun.com/docs/books/tutorial/rmi/index.html">sun</a></p>
<p>- de la <a href="http://www.eg.bucknell.edu/~cs379/DistributedSystems/rmi_tut.html">bucknell</a></p>
<p>- de la <a href="http://www.javacoffeebreak.com/articles/javarmi/javarmi.html">coffeebreak</a> (colorat)<br />
- alt blog <a href="http://jurnaljava.blogspot.com/2009/04/ce-este-java-remote-method-invocation.html">jurnal</a> (in romana).<br />
- de la <a href="http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/doc/Server_Configuration_Guide/Messaging_on_JBoss.html">redhat</a><br />
si cateva despre jms<br />
- de la <a href="http://java.sun.com/products/jms/tutorial/">sun</a><br />
- de la alt  <a href="http://www.javablogging.com/simple-guide-to-java-message-service-jms-using-activemq/">blogger</a> (recomandat)<br />
- de la <a href="http://binodsuman.blogspot.com/2009/06/jms-easy-example-get-start-with-jms-jms.html">un indian</a><br />
- de la <a href="http://www.oracle.com/technology/sample_code/tech/java/jms/index.html">oracle</a>.</p>
<p>Un tutorial foarte bun pt cine are rabdare sa citeasca pdf-uri - <a href="http://jeemaster.files.wordpress.com/2009/12/jms_tutorial-1_3_1.pdf"> jms_tutorial-1_3_1</a></p>
<p>Imi pare rau ca nu mai am timp sa pun aplicatiile testate de mine. Sper insa sa fie suficiente linkurile.<br />
Spor la cod.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=64&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/12/03/cate-ceva-despre-rmi-si-jms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>
	</item>
		<item>
		<title>Object Oriented Database</title>
		<link>http://jeemaster.wordpress.com/2009/11/23/object-oriented-database/</link>
		<comments>http://jeemaster.wordpress.com/2009/11/23/object-oriented-database/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 19:10:41 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=56</guid>
		<description><![CDATA[Voi pune niste link-uri spre cateva sisteme de baze de date orientate obiect. Traiasca wikipedia (ps: are nevoie de bani). Si ca sa va ajut sa alegeti eu am vizionat si am citit cate un pic din sistemele alea si am ales cateva, in ordinea preferintei: 1. DB4O. 2. Java objects database. 3. Cacé. DB4O [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=56&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Voi pune niste link-uri spre cateva sisteme de baze de date orientate obiect.</p>
<p>Traiasca <a href="http://en.wikipedia.org/wiki/List_of_object_database_management_systems">wikipedia</a> (ps: are nevoie de bani).</p>
<p>Si ca sa va ajut sa alegeti eu am vizionat si am citit cate un pic din sistemele alea si am ales cateva, in ordinea preferintei:</p>
<p>1. <a href="http://www.db4o.com/">DB4O</a>.<br />
2. <a href="http://www.java-objects-database.com/">Java objects database</a>.<br />
3. <a href="http://www.intersystems.com/cache/downloads/index.html">Cacé</a>.</p>
<p>DB4O are o documentatie consistenta pe cate o gasitit <a href="http://developer.db4o.com/Resources/view.aspx/Formula_One_Tutorial">aici</a>. </p>
<p>Si ceva legat de serializarea in xml a obiectelor:<br />
 exemplul <a href="http://www.codemiles.com/jaxb/marshal-java-object-to-xml-file-t5293.html">asta</a> pare ok si o implementare la jaxm gasiti <a href="http://www.java2s.com/Code/Jar/STUVWXYZ/Downloadjaxbimpljar.htm">aici</a>. </p>
<p>Daca citeste cineva ce scriu eu pe aici si are o solutie mai buna va rog sa nu ezitati sa lasati un comment. </p>
<p>Spor la scris.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=56&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/11/23/object-oriented-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>
	</item>
		<item>
		<title>Linkuri utile despre jsf</title>
		<link>http://jeemaster.wordpress.com/2009/11/20/linkuri-utile-despre-jsf/</link>
		<comments>http://jeemaster.wordpress.com/2009/11/20/linkuri-utile-despre-jsf/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 20:03:50 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=50</guid>
		<description><![CDATA[Cum sa accesezi corect un managed-bean programatic gasesti aici , sper sa nu dispara pagina si sa am timp sa o adaug pe plogul meu (care de asemenea sper sa nu pateasca nimic); Alte informatii despre hibernate si JSF, cum sa faci o aplicatie jsf si Hibernate in netBeans, tutorial oficial NetBeans aici, foarte interesant [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=50&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Cum sa accesezi corect un<em> managed-bean</em> programatic gasesti <a href="http://www.javabeat.net/tips/79-accessing-managed-bean-methods-programmatical.html"> aici </a>, sper sa nu dispara pagina si sa am timp sa o adaug pe plogul meu (care de asemenea sper sa nu pateasca nimic);</p>
<p>Alte informatii despre <span style="color:blue;"> hibernate si JSF</span>, cum sa faci o aplicatie jsf si <em>Hibernate in netBeans</em>, tutorial oficial NetBeans <a href="http://netbeans.org/kb/61/web/hibernate-vwp.html">aici</a>, foarte interesant si util.</p>
<p>Totorial Hibernate in <span style="color:blue;">eclipse</span> intuitiv gasiti <a href="http://www.vaannila.com/hibernate/hibernate-example/hibernate-tools-1.html"> aici </a>.</p>
<p>Acelas exemplu oferit de catre JDeveloper gasiti <a href="http://www.oracle.com/technology/pub/articles/vohra_hibernate.html"> aici </a>. JDeveloper este un IDE dezvoltat de catre cei de la Oracle.</p>
<p>O alta idee de aplicatie JSF si Hibernate gasiti si <a href="http://wiki.apache.org/myfaces/Hibernate_And_MyFaces"> aici </a>.</p>
<p>Un tutorial interesant despre Hibernate gasiti <a href="http://docs.jboss.org/hibernate/core/3.3/reference/en/html/tutorial.html"> aici </a>.</p>
<p>Informatii interesanta despre cum sa golesti o tabela in Hibernate gasesti <a href="https://forum.hibernate.org/viewtopic.php?t=934392">aici</a>.</p>
<p>Un site interesant despre maparile Hibernate gasiti <a href="http://ndpsoftware.com/HibernateMappingCheatSheet.html"> aici </a>. Mi se pare foarte util pt a intelege mai usor si a dezvolta mai rapid o aplicatie.</p>
<p>O versiune unor probleme care implica hibernate si JSF vor fi adaugate mai tarziu pe acest blog.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=50&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/11/20/linkuri-utile-despre-jsf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>
	</item>
		<item>
		<title>Postgres auto-increment</title>
		<link>http://jeemaster.wordpress.com/2009/11/19/postgres-auto-increment/</link>
		<comments>http://jeemaster.wordpress.com/2009/11/19/postgres-auto-increment/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 19:27:39 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=47</guid>
		<description><![CDATA[Eu folosesc Sistemul de baze de date PostgreSQL si ma lovesc des de problema auto incrementarii id-ului pe tabele. Deci o sa scriu aici o serie de pasi ca sa ma pot ghida pe viitor: Trebuie sa creez o segventa: CREATE SEQUENCE mytable_myid_seq; Trebuie sa adaug campul id daca nu il am deja: ALTER TABLE [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=47&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Eu folosesc Sistemul de baze de date PostgreSQL si ma lovesc des de problema auto incrementarii id-ului pe tabele. Deci o sa scriu aici o serie de pasi ca sa ma pot ghida pe viitor:</p>
<p>Trebuie sa creez o segventa:</p>
<pre>CREATE SEQUENCE mytable_myid_seq;</pre>
<p>Trebuie sa adaug campul <strong>id</strong> daca nu il am deja:</p>
<pre>ALTER TABLE mytable
    ADD myid INT UNIQUE;</pre>
<p>Apoi trebuie sa leg id-ul de segventa:</p>
<pre>ALTER TABLE mytable
    ALTER COLUMN myid
        SET DEFAULT NEXTVAL('mytable_myid_seq');</pre>
<p>si daca vreau sa updatez tabela cu valori pentru <strong>id</strong>, trebuie sa fac asa:</p>
<pre>UPDATE mytable
    SET myid = NEXTVAL('mytable_myid_seq');</pre>
<p>Si asta e tot.<br />
Aceste informatii au fost preluate de <a href="http://pointbeing.net/weblog/2008/03/mysql-versus-postgresql-adding-an-auto-increment-column-to-a-table.html">aici</a>, si au fost verificate personal.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=47&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/11/19/postgres-auto-increment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>
	</item>
		<item>
		<title>JSF schimbare locale</title>
		<link>http://jeemaster.wordpress.com/2009/11/19/jsf-schimbare-locale/</link>
		<comments>http://jeemaster.wordpress.com/2009/11/19/jsf-schimbare-locale/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 18:11:26 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=43</guid>
		<description><![CDATA[Un mic exemplu in care voi prezenta cum sa schimbi locale-ul la o aplicatie JSF. Mai exact Locale inseamna asta, sau pe wikipedia. Am cautat mult pe net pana sa dau de un exemplu functional (sunt multe exemplu care mie nu mi-au mers). exemplul asta e simplu. Mai intai terbuie declarat in faces-config.xml faptul ca [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=43&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Un mic exemplu in care voi prezenta cum sa schimbi locale-ul la o aplicatie JSF. Mai exact Locale inseamna <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Locale.html">asta</a>, sau pe <a href="http://en.wikipedia.org/wiki/Locale">wikipedia</a>. Am cautat mult pe net pana sa dau de un exemplu functional (sunt multe exemplu care mie nu mi-au mers). exemplul asta e simplu. Mai intai terbuie declarat in faces-config.xml faptul ca vrei sa folosesti locale, apoi folosesti variabila care retine mesajele particularizate in paginile jsp, care este vazut ca un bean, desi e resursa. Pentru a schimba textul in mod dinamic am facut o clasa, care are nite metode cu ajutorul carora schimb variabila locale din aplicatie.</p>
<p>Si acum sursele&#8230;</p>
<p>Am un pachet locale si o clasa si niste fisiere de proprietati care contin mesajele:</p>
<p><a href="http://jeemaster.files.wordpress.com/2009/11/packet.png"><img class="alignleft size-full wp-image-44" title="packet" src="http://jeemaster.files.wordpress.com/2009/11/packet.png" alt="" width="190" height="70" /></a>Am oferit suport doar pt engleza si romana, dar se poat adauga foarte usor cate traduceri vreti.</p>
<p>&nbsp;</p>
<p>In faces-config.xml am definit locale asa:</p>
<pre>
<div style="float:left;white-space:pre;line-height:1;background:#FFFFFF;"><span class="sc1">&lt;application&gt;</span><span class="sc0">
    </span><span class="sc9">&lt;!-- in  aplicatie declar configuratia pt locale--&gt;</span><span class="sc0">
    </span><span class="sc1">&lt;locale-config&gt;</span><span class="sc0">
        </span><span class="sc1">&lt;default-locale&gt;</span><span class="sc0">ro</span><span class="sc1">&lt;/default-locale&gt;</span><span class="sc0">
        </span><span class="sc1">&lt;supported-locale&gt;</span><span class="sc0">ro</span><span class="sc1">&lt;/supported-locale&gt;</span><span class="sc0">
        </span><span class="sc1">&lt;supported-locale&gt;</span><span class="sc0">en</span><span class="sc1">&lt;/supported-locale&gt;</span><span class="sc0">
    </span><span class="sc1">&lt;/locale-config&gt;</span><span class="sc0">
    </span><span class="sc1">&lt;resource-bundle&gt;</span><span class="sc0">
        </span><span class="sc9">&lt;!-- setez numele de baza pt fisiere de proprietati
        a se observa ca denumirea se opreste la Message
        _ro si _en vor fi adaugate de catre aplicatie--&gt;</span><span class="sc0">
        </span><span class="sc1">&lt;base-name&gt;</span><span class="sc0">locale.Messages</span><span class="sc1">&lt;/base-name&gt;</span><span class="sc0">
        </span><span class="sc9">&lt;!-- variabila la care se va face referire pt mesaj--&gt;</span><span class="sc0">
        </span><span class="sc1">&lt;var&gt;</span><span class="sc0">msg</span><span class="sc1">&lt;/var&gt;</span><span class="sc0">
    </span><span class="sc1">&lt;/resource-bundle&gt;</span><span class="sc0">
</span><span class="sc1">&lt;/application&gt;</span><span class="sc0">
</span><span class="sc9">&lt;!-- declararea manage-beanului pentru actiunile de schimbare a locale-ului --&gt;</span><span class="sc0">
</span><span class="sc1">&lt;managed-bean&gt;</span><span class="sc0">
    </span><span class="sc1">&lt;managed-bean-name&gt;</span><span class="sc0">locale</span><span class="sc1">&lt;/managed-bean-name&gt;</span><span class="sc0">
    </span><span class="sc1">&lt;managed-bean-class&gt;</span><span class="sc0">locale.Local</span><span class="sc1">&lt;/managed-bean-class&gt;</span><span class="sc0">
    </span><span class="sc1">&lt;managed-bean-scope&gt;</span><span class="sc0">session</span><span class="sc1">&lt;/managed-bean-scope&gt;</span><span class="sc0">
</span><span class="sc1">&lt;/managed-bean&gt;</span></div>
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>import java.util.Locale;</p>
<p>public class Local {<br />
private Locale locale;</p>
<p>public Locale getLocale(){<br />
return locale;<br />
}</p>
<p>public String setLocaleRO(){<br />
locale = new Locale(&#8220;ro&#8221;);<br />
return &#8220;&#8221;;<br />
}</p>
<p>public String setLocaleEN(){<br />
locale = Locale.ENGLISH;<br />
return &#8220;&#8221;;<br />
}<br />
}</p>
<p>Si acum partea din jsp care apeleaza metodele din manage-bean pt a schimba valorile:</p>
<p>&lt;h:form&gt;</p>
<p><span style="white-space:pre;"> </span>&lt;h:commandButton value=&#8221;ro&#8221; action=&#8221;#{locale.setLocaleRO}&#8221; /&gt; &amp;nbsp;&amp;nbsp;</p>
<p><span style="white-space:pre;"> </span>&lt;h:commandButton value=&#8221;en&#8221; action=&#8221;#{locale.setLocaleEN}&#8221; /&gt;</p>
<p>&lt;/h:form&gt;</p>
<p>In paginile jsp trebuie sa adaugati in atributul locale in tagul view, cam asa:</p>
<p>&lt;f:view locale=&#8221;#{locale.locale}&#8221;&gt;</p>
<p>&lt;!&#8211; toate tagurile jsf &#8211;&gt;</p>
<p>&lt;/f:view&gt;</p>
<p>Si cam asta e tot.</p>
<p>Spor la treaba in continuare.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=43&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/11/19/jsf-schimbare-locale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/11/packet.png" medium="image">
			<media:title type="html">packet</media:title>
		</media:content>
	</item>
		<item>
		<title>JSF demo</title>
		<link>http://jeemaster.wordpress.com/2009/11/17/jsf-demo/</link>
		<comments>http://jeemaster.wordpress.com/2009/11/17/jsf-demo/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 20:14:09 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=22</guid>
		<description><![CDATA[Salutare, în acest articol voi scrie despre JSF (Fava server Faces). Deoarece am descoperit că o aplicație mică la prima vedere poate deveni destul de complexă, o voi structura pe 3 capitole. Si anume, baza de date, middle tier și în final partea de view, adică JSF efectiv. Niste linkuri utile despre JSF gasiti aici: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=22&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Salutare, în acest articol voi scrie despre JSF (Fava server Faces). Deoarece am descoperit că o aplicație mică la prima vedere poate deveni destul de complexă, o voi structura pe 3 capitole. Si anume, baza de date, middle tier și în final partea de view, adică JSF efectiv. Niste linkuri utile despre JSF gasiti aici: <a href="http://www.exadel.com/tutorial/jsf/jsftutorial-kickstart.html">Kickstart</a>, site <a href="http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSFIntro.html">oficial</a>, articol <a href="http://www.ibm.com/developerworks/library/j-jsf3/"> IBM </a>, tot pe acolo gasiti mai multe articole despre JSF, <a href="http://www.developersbook.com/jsf/jsf-tutorials/jsf-tutorials.php">Developers book</a>. Daca citit toate astea o sa va fie mai usor sa intelegeti aplicatia, sau ati putea chiar sa nu mai cititi de aici.</p>
<p>O aplicație web ar trebui să arate cam asa: <img class="alignright size-full wp-image-23" title="application-architecture" src="http://jeemaster.files.wordpress.com/2009/11/application-architecture.gif" alt="application-architecture" width="700" height="720" /></p>
<p>A se observa unde este Faces servlet si de asemenea faptul ca mai sunt niste tehnologii care permit unei aplicatii sa fie modulara si scalabila.  Avand in vedere ca aplicatia este una pur JSF nivelul business nu poate fi reprezentat de o alta tehnologie. Asa ca o sa il scriem de manutza <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Nu e greu cand ai 2-3 clase, dar de pe la 20 de clasa in sus, ar cam trebui sa folosim un alt framework care sa ne ajute un pic cu gestionarea. Partea de baze de date nu poate fi evitata orice ai face, si aici o sa folosesc <a href="http://www.postgresql.org/">PostgreSQL</a> Este usor de folosit, este gratis, si mai este si performanta (nu ca ar conta pt cateva tabele).</p>
<p>Nu am spus ce face aplicatia, nu mi se pare important atunci cand faci o aplicatie doar pentru a testa un framework, dar pentru logica celor scrise in continuare va spun ca aplicatia o sa &#8220;gestinoneze&#8221; niste scoruri la meciuri.</p>
<p>Sa incepem cu structura aplicatiei, aceasta asrata cam asa :</p>
<p><a href="http://jeemaster.files.wordpress.com/2009/11/game1.png"><img class="alignleft size-full wp-image-28" title="Game" src="http://jeemaster.files.wordpress.com/2009/11/game1.png" alt="" width="238" height="704" /></a></p>
<p>Respirati adanc&#8230; nu e asa de complicat pe cat pare, am pus clasele in multe pachete pt ca</p>
<p>au diferite functii si am vrut sa le regasesc usor, si sa ma obisnuiesc cu o organizare stricta. Imaginati-va cam a avea 10 convertori si 10 validatori&#8230; si asta e doar pt un proiect mediu spre mic <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Un tutorial pentru convertori si validatori il puteti vedea <a href="http://www.ibm.com/developerworks/library/j-jsf3/">aici</a>.</p>
<p>Sa incepem cu beanurile, acestea se afla in pacjetul <strong>jsfp</strong> si sunt niste clase cu niste campuri care sunt corespunzatoare cu campurile aferente din tabelele din baza de date. De exemplu in baza de date exista tabela <strong>score</strong>, deci am bean cu acelas nume. Beanul <strong>Score </strong>arata asa:</p>
<pre>package jsfp;

import java.io.Serializable;
import java.util.Calendar;
import java.util.Locale;
import jdba.ScoreService;

public class Score implements Serializable {

    private Long id;
    private Team hoast;
    private Team guest;
    private Integer score1;
    private Integer score2;
    private Calendar date;

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof Score)) {
            return false;
        } else {
            Score t = (Score) o;
            if (id != t.getId()) {
                return false;
            } else {
                return true;
            }
        }
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 53 * hash + (this.id != null ? this.id.hashCode() : 0);
        hash = 53 * hash + (this.hoast != null ? this.hoast.hashCode() : 0);
        hash = 53 * hash + (this.guest != null ? this.guest.hashCode() : 0);
        hash = 53 * hash + (this.score1 != null ? this.score1.hashCode() : 0);
        hash = 53 * hash + (this.score2 != null ? this.score2.hashCode() : 0);
        return hash;
    }

    public void persist() {
        ScoreService ss = new ScoreService();
        ss.insert(this);
        score1 = 0;
        score2 = 0;
        date = Calendar.getInstance(new Locale(new Local().getLocale()));
    }

     // getters and setters for every field

}</pre>
<p><strong>IMPORTANT</strong> Suprascrierea metodelor equals si getHash este obligatorie, pt ca JSF compara obiectele atunci cand lucreaza cu ele.</p>
<p>Clasa Team.java arata cam asa:</p>
<pre>package jsfp;

import java.io.Serializable;
import jdba.TeamService;

public class Team implements Serializable {

    private Long id;
    private String name;
    private String manager;
    private String coach;
    private String mood;
    private Integer points;

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof Team)) {
            return false;
        } else {
            Team t = (Team) o;
            if (id != t.getId()) {
                return false;
            } else {
                return true;
            }
        }
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 71 * hash + (this.id != null ? this.id.hashCode() : 0);
        hash = 71 * hash + (this.name != null ? this.name.hashCode() : 0);
        hash = 71 * hash + (this.manager != null ? this.manager.hashCode() : 0);
        hash = 71 * hash + (this.coach != null ? this.coach.hashCode() : 0);
        hash = 71 * hash + (this.mood != null ? this.mood.hashCode() : 0);
        hash = 71 * hash + (this.points != null ? this.points.hashCode() : 0);
        return hash;
    }

    public void persist() {
        TeamService ts = new TeamService();
        ts.insert(this);
    }

   // getters and setters for every field

}</pre>
<p>Clasa <strong>Locale</strong> nu are echivalent in baza de date, este folosita doar pentru a stoca variabila de interbationalizare. Ea arata asa:</p>
<pre>package jsfp;

public class Local {

    private static String locale = new String("en");

    public String setLocaleRo() {
        locale = new String("ro");
        return "ro";
    }

    public String setLocaleEn() {
        locale = new String("en");
        return "en";
    }

    public String getLocale() {
        return locale;
    }

    public void setLocale(String locale) {
        this.locale = locale;
    }
}</pre>
<p><strong>Conectarea la baza de date</strong> am realizat-o destul de simplu si ineficient d.p.d.v al scalabilitatii, dar avand in vedere ca asta e doar o tema si nu sunt mai mult de 2-3 utilizatori se accepta <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Ideea este urmatoarea: am facut o clasa singleton <em>DbCon</em> care tine o conexiune la baza de date, cand am nevoie de o conexiune de oriunde din aplicatie, apelez aceasta clasa si iau o conexiune. Aceasta clasa arata asa:</p>
<pre>package jdba;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ResourceBundle;

public class DbCon {

    private static DbCon instance = null;

    private DbCon() {
    }

    public static DbCon getInstance() {
        if (instance == null) {
            instance = new DbCon();
        }
        return instance;
    }

    public Connection getCon() {
        try {
            ResourceBundle rsb = ResourceBundle.getBundle("jdba.DatabaseProps");
            Class.forName(rsb.getString("driver"));
            Connection c = DriverManager.getConnection(rsb.getString("url"), rsb.getString("user"),
                    rsb.getString("pass"));
            return c;
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
}</pre>
<p>Pentru a usura optinerea conexiunii am facut o clasa abstracta in care am declarat conexiunea un statement si un String &#8216;query&#8217;, aceasta clasa mai contine si 2 metode de deschidere si inchidere a conexiunii. Aceasta clasa arata asa:</p>
<pre>package jdba;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public abstract class Service {

    Connection c;
    Statement s;
    String q;

    protected void open() {
        try {
            DbCon d = DbCon.getInstance();
            c = d.getCon();
            s = c.createStatement();
            c.setAutoCommit(false);
        } catch (SQLException ex) {
            System.out.println("Error on opening connection");
            ex.printStackTrace();
        }
    }

    protected void close() {
        try {
            c.commit();
            s.close();
            c.close();
        } catch (SQLException ex) {
            System.out.println("Error on closing connection");
            ex.printStackTrace();
        }
    }
}</pre>
<p>Clasa <strong>ScoreService</strong> arata asa:</p>
<pre>package jdba;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import java.util.Vector;
import jsfp.Score;

public class ScoreService extends Service {

    public void insert(Score sc) {
        open();
        Date now = sc.getDate().getTime();
        q = "insert into score (hoast,guest,score1,score2,date) " +
                "values (" + sc.getHoast().getId() + "," +
                sc.getGuest().getId() + "," +
                sc.getScore1() + "," +
                sc.getScore2() + ",'" +
                now.getDay() + "/" + now.getMonth() + "/" + (1900 + now.getYear()) + "');";
        try {
            s.executeUpdate(q);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

        if (sc.getScore1() &gt; sc.getScore2()) {
            q = "update team set points = points + " + 3 + " where id = " + sc.getHoast().getId() + " ;";
        } else if (sc.getScore1() &lt; sc.getScore2()) {
            q = "update team set points = points + " + 3 + " where id = " + sc.getGuest().getId() + " ;";
        } else {
            q = "update team set points = points + " + 1 + "where id in (" + sc.getHoast().getId() + "," + sc.getGuest().getId() + ") ;";
        }

        try {
            s.executeUpdate(q);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        close();
    }

    public Vector getAll() {
        open();
        Vector scores = new Vector();
        q = "select hoast,guest,score1,score2,date from score";
        try {
            TeamService ts = new TeamService();
            ResultSet rs = s.executeQuery(q);
            while (rs.next()) {
                Score sc = new Score();
                sc.setHoast(ts.getById(rs.getLong(1)));
                sc.setGuest(ts.getById(rs.getLong(2)));
                sc.setScore1(rs.getInt(3));
                sc.setScore2(rs.getInt(4));
                String[] dts = rs.getString(5).split("/");
                Calendar cl = Calendar.getInstance();
                cl.set(Integer.parseInt(dts[2]), Integer.parseInt(dts[1]), Integer.parseInt(dts[0]));
                sc.setDate(cl);
                scores.add(sc);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        close();
        return scores;
    }

    public boolean gameDisputed(long hoast, long guest) {
        boolean flag = false;
        open();
        System.out.println("Hoast = " + hoast + "  Guest = " + guest);
        q = "select * from score where hoast = " + hoast + " and guest = " + guest + ";";
        try {
            ResultSet rs = s.executeQuery(q);
            flag = rs.next();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        close();
        return flag;
    }
}</pre>
<p>Clasa <strong>TeamService</strong> arata asa:</p>
<pre>package jdba;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import jsfp.Team;

public class TeamService extends Service {

    public void insert(Team t) {
        open();
        q = "insert into team (name,manager,coach,mood,points) " +
                "values ( '" + t.getName() + "'," +
                "'" + t.getManager() + "'," +
                "'" + t.getCoach() + "'," +
                "'" + t.getMood() + "',0);";
        try {
            s.executeUpdate(q);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        close();
    }

    public Team getByName(String nm) {
        open();
        Team t = null;
        q = "select id,name,manager,coach,mood,points from team where name = '" + nm + "' ;";
        try {
            ResultSet rs = s.executeQuery(q);
            while (rs.next()) {
                t = new Team();
                t.setId(rs.getLong(1));
                t.setName(rs.getString(2));
                t.setManager(rs.getString(3));
                t.setCoach(rs.getString(4));
                t.setMood(rs.getString(5));
                t.setPoints(rs.getInt(6));
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        close();
        return t;
    }

    public Team getById(Long nm) {
        open();
        Team t = null;
        q = "select id,name,manager,coach,mood,points from team where id = " + nm + " ;";
        try {
            ResultSet rs = s.executeQuery(q);
            while (rs.next()) {
                t = new Team();
                t.setId(rs.getLong(1));
                t.setName(rs.getString(2));
                t.setManager(rs.getString(3));
                t.setCoach(rs.getString(4));
                t.setMood(rs.getString(5));
                t.setPoints(rs.getInt(6));
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        close();
        return t;
    }

    public Vector getAll() {
        open();
        Vector teams = new Vector();
        q = "select id,name, manager,coach,mood,points from team";
        try {
            ResultSet rs = s.executeQuery(q);
            while (rs.next()) {
                Team t = new Team();
                t.setId(rs.getLong(1));
                t.setName(rs.getString(2));
                t.setManager(rs.getString(3));
                t.setCoach(rs.getString(4));
                t.setMood(rs.getString(5));
                t.setPoints(rs.getInt(6));
                teams.add(t);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        close();
        return teams;
    }
}</pre>
<p>Fisierul de proprietati &#8216;DatabaseProps&#8217; contine informatiile necesare pt conexiune la baza de date:<br />
user=user<br />
pass=user<br />
url=jdbc:postgresql://localhost:5432/game<br />
driver=org.postgresql.Driver</p>
<p>Clasa <strong>TeamValidator</strong> arata asa:<br />
Eu am facut o validare pentru echipe, si am gandit asa: cand este selectata prima echipa se apeleaza acet validator si este setat id-ul acestei echipe, cand se seteaza a doua echipa se apeleaza din nou acest validator si se seteaza id-ul al doilea, apoi se verifica daca aceste id-uri sunt diferite, asta avertizeaza asupra faptului ca o echipa nu poate juca cu ea insesi.</p>
<pre>package gui.validators;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
import jdba.ScoreService;
import jsfp.Team;

public class TeamValidator implements Validator {

    static long t1 = -1;
    static long t2 = -1;

    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
        Team s = (Team) value;
        if (t1 == -1) {
            t1 = s.getId();
        } else {
            t2 = s.getId();

            ScoreService ss = new ScoreService();
            if (ss.gameDisputed(t1, t2)) {
                t1 = t2 = -1;
                FacesMessage message = new FacesMessage();
                message.setDetail("Game already disputed");
                message.setSummary("Game already disputed");
                message.setSeverity(FacesMessage.SEVERITY_ERROR);
                throw new ValidatorException(message);
            }

            if (t1 == t2) {
                t1 = t2 = -1;
                FacesMessage message = new FacesMessage();
                message.setDetail("Teams must not be equal");
                message.setSummary("Teams must not be equal");
                message.setSeverity(FacesMessage.SEVERITY_ERROR);
                throw new ValidatorException(message);
            }
            t1 = t2 = -1;
        }
    }
}</pre>
<p>Clasa <strong>TeamGetAll</strong> arata asa:</p>
<pre>package gui;

import java.util.Vector;
import javax.faces.model.SelectItem;
import jdba.TeamService;
import jsfp.Team;

public class TeamGetAll {

    public Vector
 getAll(){
        Vector
 sis = new Vector
();
        TeamService ts = new TeamService();
        Vector vt = ts.getAll();
        for(Team t:vt){
            SelectItem si = new SelectItem(t,t.getName());
            sis.add(si);
        }
        return sis;
    }

    public Vector getTeams(){
        TeamService ts = new TeamService();
        return ts.getAll();
    }
}</pre>
<p>Clasa <strong>ScoresGetAll</strong> arata asa:</p>
<pre>package gui;

import java.util.Vector;
import jdba.ScoreService;
import jsfp.Score;

public class ScoresGetAll {

    public Vector getScores() {
        ScoreService ts = new ScoreService();
        return ts.getAll();
    }
}</pre>
<p>Daca inca mai <strong>citesti</strong> inseamna ca ai vointa <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Acum o sa pun si niste poze cu bucatelele importante din paginile jsp:<br />
pagina de <strong>index</strong> arata asa:<br />
<a href="http://jeemaster.files.wordpress.com/2009/11/index.png"><img class="alignleft size-full wp-image-30" title="index" src="http://jeemaster.files.wordpress.com/2009/11/index.png" alt="" width="1007" height="470" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Pagina <strong>View</strong> arata asa:<br />
<a href="http://jeemaster.files.wordpress.com/2009/11/index1.png"><img class="alignleft size-full wp-image-32" title="index" src="http://jeemaster.files.wordpress.com/2009/11/index1.png" alt="" width="798" height="702" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Pagina <strong>Teams</strong> arata asa:</p>
<p><a href="http://jeemaster.files.wordpress.com/2009/11/index2.png"><img class="alignleft size-full wp-image-33" title="index" src="http://jeemaster.files.wordpress.com/2009/11/index2.png" alt="" width="781" height="907" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Pagina <strong>Edit</strong> arata asa:</p>
<p><a href="http://jeemaster.files.wordpress.com/2009/11/index3.png"><img class="alignleft size-full wp-image-34" title="index" src="http://jeemaster.files.wordpress.com/2009/11/index3.png" alt="" width="961" height="1177" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Cam asta e tot&#8230;<br />
cireasa de pe tort: asta e o aplicatie mica :d analiza placuta si cititi cu atentie tutorialele de la linkurile  pe care le-am pus la inceputul paginii.<br />
PS: asta e si faces config:<br />
<a href="http://jeemaster.files.wordpress.com/2009/11/index4.png"><img class="alignleft size-full wp-image-40" title="index" src="http://jeemaster.files.wordpress.com/2009/11/index4.png" alt="" width="684" height="2498" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Spor in continuare.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=22&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/11/17/jsf-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/11/application-architecture.gif" medium="image">
			<media:title type="html">application-architecture</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/11/game1.png" medium="image">
			<media:title type="html">Game</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/11/index.png" medium="image">
			<media:title type="html">index</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/11/index1.png" medium="image">
			<media:title type="html">index</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/11/index2.png" medium="image">
			<media:title type="html">index</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/11/index3.png" medium="image">
			<media:title type="html">index</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/11/index4.png" medium="image">
			<media:title type="html">index</media:title>
		</media:content>
	</item>
		<item>
		<title>Free Marker</title>
		<link>http://jeemaster.wordpress.com/2009/10/22/free-maker/</link>
		<comments>http://jeemaster.wordpress.com/2009/10/22/free-maker/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 17:00:08 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[Java Web]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=13</guid>
		<description><![CDATA[Stiu ca alegerea multora este Velocity, dar dupa o zi de documentare si nervi, nu am reusit sa fac functionala o pagina . Asa ca am ales a doua alternativa care este mai &#8220;tanara&#8221; dar mai buna. Va prezint in continuare o aplicatie web care foloseste Free Marker. Un &#8220;Hello world!&#8221; cred ca e suficient [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=13&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Stiu ca alegerea multora este Velocity, dar dupa o zi de documentare si nervi, nu am reusit sa fac functionala o pagina <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Asa ca am ales a doua alternativa care este mai &#8220;tanara&#8221; dar mai buna. Va prezint in continuare o aplicatie web care foloseste Free Marker. Un &#8220;Hello world!&#8221; cred ca e suficient pt inceput. Gasiti <a href="http://freemarker.org/docs/index.html" target="blank"> aici</a> si documentatia pentru lucruri mai avansate <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Mai intai terbuie sa luati <a href="http://sourceforge.net/projects/freemarker/files/freemarker/2.3.15/freemarker-2.3.15.tar.gz/download" target="blank"> sursele </a> pentru Free Marker. Spre deosebire de Velocity acesta are un singur jar.<br />
Faceti un proiect web simplu. Creati un servlet, eu l-am denumit &#8220;FMServlet&#8221;. Codul acestiua ar terbui sa fie cam asa:</p>
<pre>package fm;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.IOException;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FMServlet extends HttpServlet {

    private Configuration cfg;
    public void init() {
        cfg = new Configuration();
        //specificati locul de unse se vor incarca template-urile
        cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/template");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       //Construiti un model
        Map root = new HashMap();
        root.put("message", "Hello World!");

        // Puneti mana protected template
        Template t = cfg.getTemplate("test.ftl");

        //Pregatiti raspunsul
        response.setContentType("text/html; charset=" + t.getEncoding());
        Writer out = response.getWriter();

        // Uniti medelul cu template-ul, si apoi il scrieti in response
        try {
            t.process(root, out);
        } catch (TemplateException e) {
            throw new ServletException(
                    "Error while processing FreeMarker template", e);
        }
    }
}</pre>
<p>Continutul templatului este umratorul:</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Primul exemplu de template cu FreeMarker&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
Servletul va transmite: ${message}<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>Din pagina index.jsp apelz servletul care imi intoarce templatul impreuna cu datele.</p>
<p>Cam atat de simplu este. Evident o sa pun si niste poze cu structura aplicatiei pentru a avea un context in care stau aceste 2 fisiere:<br />
Structura aplicatiei:</p>
<p><img class="alignleft size-full wp-image-14" title="Structura" src="http://jeemaster.files.wordpress.com/2009/10/structura.png" alt="Structura" width="191" height="344" /></p>
<p>A se observa locatia templatului</p>
<p>Locatia servletului</p>
<p>Faptul ca am inclus jarul freemarker</p>
<p>Spor la cod.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=13&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/10/22/free-maker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/10/structura.png" medium="image">
			<media:title type="html">Structura</media:title>
		</media:content>
	</item>
		<item>
		<title>Taguri imbricate</title>
		<link>http://jeemaster.wordpress.com/2009/10/20/taguri-imbricate/</link>
		<comments>http://jeemaster.wordpress.com/2009/10/20/taguri-imbricate/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 23:00:06 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[Java Web]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=6</guid>
		<description><![CDATA[Incerc sa fac un mic exemplu despre tagurile imbricate. Ideea de baza este sa facem un tag parinte care are ca atribut o culoare, apoi un tag interior care are ca atribut o dimensiune de la 1 la 6 si de asemenea poate fi suprascris atributul culoare, in caz contrar este luat de la tagul [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=6&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Incerc sa fac un mic exemplu despre tagurile imbricate. Ideea de baza este sa facem un tag parinte care are ca atribut o culoare, apoi un tag interior care are ca atribut o dimensiune de la 1 la 6 si de asemenea poate fi suprascris atributul culoare, in caz contrar este luat de la tagul parinte. Pentru exemplul asta voi folosi netbeans 6.7.1 si voi porni de la o aplicatie web simpla, fara nici un framework.</p>
<p>Dupa crearea aplicatiei, trebuie sa creati un TLD, netbeans ne ajuta mult, pasii sunt urmatorii: Ctrl+N pentu un nou fisier, apoi din categoria Web alegeti Tag Library Descriptor, alegeti numele si gata. Vericicati sa fi in interiorul lui WEB-INF, altfel nu va fi recunoscut in pagini!. Sa ii spunem MyTLD.</p>
<p>Acum cream 2 tag handler-uri:Facem un pachet in folderul de surse numit &#8220;tags&#8221; sin in acel pachet o sa punem handler-urile noastre. Deci Ctrl+N, din categoria web alegem Tag Handler, dupa ce alegeti numele, trebuie sa alegeti si fisierul TLD in care vreti sa il puneti, alegeti MyTLD, la acelas pas adaugati si 1 atribut care este de tipul string si se numeste color, atributul este obligatoriu, si trebuie bifat ca atare. Si astfel am terminat primul tag Handler, eu l-am denumit PapaTag. Similar faceti si un SonTag, dar care va avea atributul color optional, si inca un atribut size optional.</p>
<p>Si acum sursele:<br />
PapaTag.java</p>
<pre>package tags;
import java.io.IOException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class PapaTag extends SimpleTagSupport {
    private String color;
    @Override
    public void doTag() throws JspException {
        try {
            JspWriter out = getJspContext().getOut();
            //setez culoarea data ca parametru
            out.print("");
            try {
                JspFragment f = getJspBody();
                if (f != null) {
                    f.invoke(out);
                }
                //dupa textul din tag
                out.print("");
            } catch (java.io.IOException ex) {
                ex.printStackTrace();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    public String getColor(){
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
}</pre>
<p>SonTag.java</p>
<pre>package tags;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class SonTag extends SimpleTagSupport {
    private String color;
    private String size;
    @Override
    public void doTag() throws JspException {
        JspWriter out = getJspContext().getOut();
        try {
            // optin parintele daca exista
            PapaTag pt = (PapaTag) findAncestorWithClass(this, PapaTag.class);
            if(pt!=null){ // daca nu am culoarea setata o iau de la parinte
                if(color==null){
                    color = pt.getColor();
                }
            }
            if(size==null){ //daca nu am dimensiunea specificata fac una default
                size = "1";
            }
            //setez culoarea si mensiunea
            out.print("");
            JspFragment f = getJspBody();
            if (f != null) {
                f.invoke(out);
            }
            //inchit tagurile
            out.print("");
        } catch (java.io.IOException ex) {
            throw new JspException("Error in SonTag tag", ex);
        }
    }

    public void setColor(String color) {
        this.color = color;
    }
    public void setSize(String size) {
        this.size = size;
    }
}</pre>
<p>Fisierul web.xml nu trebuie modificat si fisierul MyTLD.tld este completat de netBeans.<br />
Pagina index.jsp este urmaoarea:</p>
<p><img class="size-full wp-image-9 alignleft" title="index.jpg" src="http://jeemaster.files.wordpress.com/2009/10/index1.png" alt="index.jpg" width="450" height="237" /></p>
<p>Si asta este structura proiectului din NetBeans:</p>
<p><img class="alignleft size-full wp-image-10" title="tree" src="http://jeemaster.files.wordpress.com/2009/10/tree.png" alt="tree" width="170" height="309" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=6&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/10/20/taguri-imbricate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/10/index1.png" medium="image">
			<media:title type="html">index.jpg</media:title>
		</media:content>

		<media:content url="http://jeemaster.files.wordpress.com/2009/10/tree.png" medium="image">
			<media:title type="html">tree</media:title>
		</media:content>
	</item>
		<item>
		<title>Indrumari pentru captcha in jee</title>
		<link>http://jeemaster.wordpress.com/2009/10/04/indrumari-pentru-captcha-in-jee/</link>
		<comments>http://jeemaster.wordpress.com/2009/10/04/indrumari-pentru-captcha-in-jee/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 05:38:48 +0000</pubDate>
		<dc:creator>Edi</dc:creator>
				<category><![CDATA[Java Web]]></category>

		<guid isPermaLink="false">http://jeemaster.wordpress.com/?p=4</guid>
		<description><![CDATA[http://www.owasp.org/index.php/JCaptcha_servlet_example si utilizati si jarul asta : commons-collections-2.1.jar<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=4&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.owasp.org/index.php/JCaptcha_servlet_example">http://www.owasp.org/index.php/JCaptcha_servlet_example</a></p>
<p>si utilizati si jarul asta : commons-collections-2.1.jar</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jeemaster.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jeemaster.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jeemaster.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jeemaster.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jeemaster.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jeemaster.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jeemaster.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jeemaster.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jeemaster.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jeemaster.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jeemaster.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jeemaster.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jeemaster.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jeemaster.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jeemaster.wordpress.com&amp;blog=9776343&amp;post=4&amp;subd=jeemaster&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jeemaster.wordpress.com/2009/10/04/indrumari-pentru-captcha-in-jee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1ba957f47063f83fe15874675175da02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Edi</media:title>
		</media:content>
	</item>
	</channel>
</rss>
