<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Loiane Groner</title>
	
	<link>http://loianegroner.com</link>
	<description>Java and related technologies</description>
	<lastBuildDate>Mon, 08 Mar 2010 10:30:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/LoianeGroner" /><feedburner:info uri="loianegroner" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license><feedburner:emailServiceId>LoianeGroner</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Importing an Excel Spreadsheet into an ExtJS DataGrid using DataDrop Grid Plugin</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/nkHB0GGgt68/</link>
		<comments>http://loianegroner.com/2010/03/importing-an-excel-spreadsheet-into-an-extjs-datagrid-using-datadrop-grid-plugin/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 10:30:35 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[ExtJS Grid]]></category>
		<category><![CDATA[ExtJS Plugin]]></category>
		<category><![CDATA[import excel to grid]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=301</guid>
		<description><![CDATA[

This tutorial will walk through how to import an Excel Spreadsheet into a DataGrid using DataDrop Plugin (by Shea Freaderick).
Last week I was looking for a plugin that would allow me to import data from an excel file.
I did not find any plugin on ExtJS forum that works like export excel from grid; I mean, [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;"><a href="http://loianegroner.com/wp-content/uploads/2010/03/extjs_datadrop_excel_grid_plugin.jpg"><img class="aligncenter size-full wp-image-311" title="extjs_datadrop_excel_grid_plugin" src="http://loianegroner.com/wp-content/uploads/2010/03/extjs_datadrop_excel_grid_plugin.jpg" alt="" width="749" height="396" /></a></p>
<p style="text-align: justify;">This tutorial will walk through how to import an Excel Spreadsheet into a DataGrid using DataDrop Plugin (by <a href="http://www.vinylfox.com/" target="_blank">Shea Freaderick</a>).</p>
<p style="text-align: justify;">Last week I was looking for a plugin that would allow me to import data from an excel file.</p>
<p style="text-align: justify;">I did not find any plugin on <a href="http://www.extjs.com/forum/" target="_blank">ExtJS forum</a> that works like <a href="http://loianegroner.com/2010/02/extjs-how-to-export-datagrid-to-excel/" target="_blank">export excel from grid</a>; I mean, a plugin I do not need any server side code – I could use <a href="http://loianegroner.com/2010/03/ajax-file-upload-with-extjs-and-spring-framework/" target="_blank">file upload plugin</a> and do the whole logic thing on server side, but that is not what I was looking for. However, I did find an interesting plugin. Actuality, this plugin I found is awesome! The coolest ExtJS grid plugin I have ever seen! It is really amazing!</p>
<p style="text-align: justify;">So, what is this plugin I am talking a lot about it?</p>
<p style="text-align: justify;">It is called <a href="http://www.vinylfox.com/datadrop-drag-grid-data-from-spreadsheet/" target="_blank">DataDrop</a> developed by <a href="http://www.vinylfox.com/" target="_blank">Shea Frederick</a> (a.k.a <a href="http://www.vinylfox.com/" target="_blank">VinylFox</a>) and you can drag data into an ExtJS Datagrid from a spreadsheet.</p>
<p style="text-align: justify;">It is very helpful if you need to import some data from an Excel file. In my point of view, I think it is not good plugin if you need to import large amount of data, because it is not very practical to select a large amount of rows and columns from a spreadsheet. It works very well with any file size, though.</p>
<p style="text-align: justify;">What do you need to use this plugin?</p>
<p style="text-align: justify;">1 &#8211; Download plugin from author’s repository (<a href="http://code.google.com/p/ext-ux-datadrop/" target="_blank">Google code</a>)</p>
<p style="text-align: justify;">2 &#8211; Add javascript import to your html page (along with your other ExtJS imports)</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
	&lt;script src=&quot;/extjs-grid-dragdrop-excel/js/datadrop-plugin/Override.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/extjs-grid-dragdrop-excel/js/datadrop-plugin/Ext.ux.DataDrop.js&quot;&gt;&lt;/script&gt;
</pre>
<p style="text-align: justify;">3 &#8211; Add “<em>Ext.ux.grid.DataDrop</em>” to your datagrid <em>plugins</em> declaration</p>
<pre class="brush: jscript; collapse: false; first-line: 1; highlight: [11]; toolbar: true; wrap-lines: false;">
    // create grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {header: &quot;NAME&quot;, width: 170, sortable: true, dataIndex: 'name'},
            {header: &quot;PHONE #&quot;, width: 150, sortable: true, dataIndex: 'phone'},
            {header: &quot;EMAIL&quot;, width: 150, sortable: true, dataIndex: 'email'},
            {header: &quot;BIRTHDAY&quot;, width: 100, sortable: true, dataIndex: 'birthday',
            	renderer: Ext.util.Format.dateRenderer('m/d/Y')}
        ],
        plugins: [Ext.ux.grid.DataDrop],
        title: 'My Contacts',
        autoHeight:true,
        width:590,
		renderTo: document.body,
		frame:true
    });
</pre>
<p style="text-align: justify;">You can download a working example from my Github repository: <a href="http://github.com/loiane/extjs-grid-dragdrop-excel" target="_blank">http://github.com/loiane/extjs-grid-dragdrop-excel</a></p>
<p style="text-align: justify;">Other observations:</p>
<p style="text-align: justify;">On <a href="http://www.vinylfox.com/datadrop-drag-grid-data-from-spreadsheet/" target="_blank">VinylFox website</a>, there is a video that demonstrates how to use the plugin with Open Office.</p>
<p style="text-align: justify;">In my first attempt to run my example, I tried to select data from Microsoft Excel and drag and drop into datagrid, but I could not find how to do it (yes, I know, I’m totally M$ Excel newbie – just know how to do simple math – shame on me) – it is so easy to drag data from Open Office and Lotus Symphony – you can click on any place!</p>
<p style="text-align: justify;">If you are newbie just like me, I recorded a video demonstrating how to do it:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Seq7rQgILvg&amp;hl=pt_BR&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/Seq7rQgILvg&amp;hl=pt_BR&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: justify;">Happy coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=301&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F03%2Fimporting-an-excel-spreadsheet-into-an-extjs-datagrid-using-datadrop-grid-plugin%2F&amp;linkname=Importing%20an%20Excel%20Spreadsheet%20into%20an%20ExtJS%20DataGrid%20using%20DataDrop%20Grid%20Plugin"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=nkHB0GGgt68:HPLJgtmoLLg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=nkHB0GGgt68:HPLJgtmoLLg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=nkHB0GGgt68:HPLJgtmoLLg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=nkHB0GGgt68:HPLJgtmoLLg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=nkHB0GGgt68:HPLJgtmoLLg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=nkHB0GGgt68:HPLJgtmoLLg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=nkHB0GGgt68:HPLJgtmoLLg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/nkHB0GGgt68" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/03/importing-an-excel-spreadsheet-into-an-extjs-datagrid-using-datadrop-grid-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/03/importing-an-excel-spreadsheet-into-an-extjs-datagrid-using-datadrop-grid-plugin/</feedburner:origLink></item>
		<item>
		<title>Ajax File Upload with ExtJS and Spring Framework</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/7WKmgY5E4AA/</link>
		<comments>http://loianegroner.com/2010/03/ajax-file-upload-with-extjs-and-spring-framework/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 10:30:31 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[ExtJS + J2EE]]></category>
		<category><![CDATA[file upload]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=285</guid>
		<description><![CDATA[

This tutorial will walk you through how to implement an ajax file upload form using ExtJS on client side and Spring Framework on server side.
What are you going to need before start this tutorial?

ExtJS
Spring Framework (MVC) and its dependencies
commons-io-1.4.jar
commons-fileupload-1.2.jar

First, you need to implement the ExtJS File Upload form. You can use ExtJS File Upload example [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: center;"><a href="http://loianegroner.com/wp-content/uploads/2010/02/file_upload_spring_extjs_loiane.png"><img class="aligncenter size-full wp-image-292" style="border: 1px solid black;" title="file_upload_spring_extjs_loiane" src="http://loianegroner.com/wp-content/uploads/2010/02/file_upload_spring_extjs_loiane.png" alt="" width="513" height="149" /></a></p>
<p>This tutorial will walk you through how to implement an ajax file upload form using ExtJS on client side and Spring Framework on server side.</p>
<p>What are you going to need before start this tutorial?</p>
<ul>
<li><a href="http://www.extjs.com/" target="_blank">ExtJS</a></li>
<li><a href="http://www.springsource.com/download/community" target="_blank">Spring Framework</a> (MVC) and its dependencies</li>
<li><a href="http://commons.apache.org/downloads/download_io.cgi" target="_blank">commons-io-1.4.jar</a></li>
<li><a href="http://commons.apache.org/downloads/download_fileupload.cgi" target="_blank">commons-fileupload-1.2.jar</a></li>
</ul>
<p>First, you need to implement the ExtJS File Upload form. You can use ExtJS <a href="http://www.extjs.com/deploy/dev/examples/form/file-upload.html" target="_blank">File Upload example</a> page to see how it looks like (I&#8217;m using third example).<br />
Bellow is the form I implemented (or copied from ExtJS and adapted it to my needs &#8211; spring):</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
Ext.onReady(function(){

    Ext.QuickTips.init();

    var msg = function(title, msg){
        Ext.Msg.show({
            title: title,
            msg: msg,
            minWidth: 200,
            modal: true,
            icon: Ext.Msg.INFO,
            buttons: Ext.Msg.OK
        });
    };

    var fp = new Ext.FormPanel({
        renderTo: 'fi-form',
        fileUpload: true,
        width: 500,
        frame: true,
        title: 'File Upload Form',
        autoHeight: true,
        bodyStyle: 'padding: 10px 10px 0 10px;',
        labelWidth: 50,
        defaults: {
            anchor: '95%',
            allowBlank: false,
            msgTarget: 'side'
        },
        items: [{
            xtype: 'fileuploadfield',
            id: 'form-file',
            emptyText: 'Select a File to import',
            fieldLabel: 'File',
            name: 'file',
            buttonCfg: {
                text: '',
                iconCls: 'upload-icon'
            }
        }],
        buttons: [{
            text: 'Upload',
            handler: function(){
                if(fp.getForm().isValid()){
	                fp.getForm().submit({
	                    url: 'fileUpload/import.action',
	                    waitMsg: 'Uploading your file...',
	                    success: function(fp, o){
	                        msg('Success', 'Processed file on the server');
	                    }
	                });
                }
            }
        },{
            text: 'Reset',
            handler: function(){
                fp.getForm().reset();
            }
        }]
    });

});
</pre>
<p>And here is an example of how to use it (html page):</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Spring FileUpload Example with ExtJS Form&lt;/title&gt;

    &lt;!-- Ext JS files --&gt;
	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/extjs-file-import-spring/ext-3.1.1/resources/css/ext-all.css&quot; /&gt;

	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/extjs-file-import-spring/ext-3.1.1/examples/shared/examples.css&quot; /&gt;
    &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/extjs-file-import-spring/ext-3.1.1/examples/ux/fileuploadfield/css/fileuploadfield.css&quot;/&gt;

	&lt;style type=text/css&gt;
        .upload-icon {
            background: url('/extjs-file-import-spring/ext-3.1.1/examples/shared/icons/fam/image_add.png') no-repeat 0 0 !important;
        }
    &lt;/style&gt;

	&lt;script src=&quot;/extjs-file-import-spring/ext-3.1.1/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/extjs-file-import-spring/ext-3.1.1/ext-all.js&quot;&gt;&lt;/script&gt;

	&lt;script src=&quot;/extjs-file-import-spring/ext-3.1.1/examples/ux/fileuploadfield/FileUploadField.js&quot;&gt;&lt;/script&gt;

	&lt;!-- file upload form --&gt;
	&lt;script src=&quot;/extjs-file-import-spring/js/file-upload.js&quot;&gt;&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;

	&lt;h1&gt;Spring File Upload Example Integrated with ExtJS FileUpload Form&lt;/h1&gt;
	&lt;p&gt;Click on &quot;Browse&quot; button (image) to select a file and click on Upload button&lt;/p&gt;
	&lt;div id=&quot;fi-form&quot;&gt;&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Before starting to code a FileUploadController, you are going to need a FileUploadBean:</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
package com.loiane.beans;

import org.springframework.web.multipart.MultipartFile;

public class FileUploadBean {

	private MultipartFile file;

	public MultipartFile getFile() {
		return file;
	}

	public void setFile(MultipartFile file) {
		this.file = file;
	}

}
</pre>
<p>And here is my FileUploadController (I am simply storing the uploaded file in a directory in my hard drive &#8211; C:). You can add some validation or process the file in this class. You can also add some message to return to client side in case of success or failure.</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
package com.loiane.web;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

import com.loiane.beans.FileUploadBean;

public class FileUploadController extends SimpleFormController  {

	protected ModelAndView onSubmit(
			HttpServletRequest request,
			HttpServletResponse response,
			Object command,
			BindException errors) throws ServletException, IOException {

		// cast the bean
		FileUploadBean bean = (FileUploadBean) command;

		MultipartFile file = bean.getFile();
		String fileName = null;

		if (file == null) {
			System.out.println(&quot;User Did not upload file&quot;);
		}
		else {
			System.out.println(&quot;Uploaded File Name is :&quot; + file.getOriginalFilename());
		}

		InputStream inputStream = null;
		OutputStream outputStream = null;
		if (file.getSize() &gt; 0) {
			inputStream = file.getInputStream();
			String root = &quot;C:\\&quot;;
			fileName = root + file.getOriginalFilename();
			outputStream = new FileOutputStream(fileName);
			int readBytes = 0;
			byte[] buffer = new byte[10000];
			while ((readBytes = inputStream.read(buffer, 0 , 10000))!=-1){

				outputStream.write(buffer, 0, readBytes);
			}
			outputStream.close();
			inputStream.close();
		}

		return null;

	}     

	protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
	throws ServletException {
		// to actually be able to convert Multipart instance to byte[]
		// we have to register a custom editor
		binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
		// now Spring knows how to handle multipart object and convert them
	}

}
</pre>
<p>You also need to add this in your servelt.xml:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
	&lt;!-- max upload size in bytes --&gt;
     &lt;bean id=&quot;multipartResolver&quot; class=&quot;org.springframework.web.multipart.commons.CommonsMultipartResolver&quot;&gt;
     	&lt;property name=&quot;maxUploadSize&quot; value=&quot;1000000&quot;/&gt;
     &lt;/bean&gt;
</pre>
<p>Very simple!</p>
<p>Here is the source code of my example project: <a href="http://github.com/loiane/extjs-file-import-spring" target="_blank">http://github.com/loiane/extjs-file-import-spring</a></p>
<p>Happy coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=285&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F03%2Fajax-file-upload-with-extjs-and-spring-framework%2F&amp;linkname=Ajax%20File%20Upload%20with%20ExtJS%20and%20Spring%20Framework"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7WKmgY5E4AA:5zTKwh_kSyQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7WKmgY5E4AA:5zTKwh_kSyQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7WKmgY5E4AA:5zTKwh_kSyQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=7WKmgY5E4AA:5zTKwh_kSyQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7WKmgY5E4AA:5zTKwh_kSyQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7WKmgY5E4AA:5zTKwh_kSyQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=7WKmgY5E4AA:5zTKwh_kSyQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/7WKmgY5E4AA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/03/ajax-file-upload-with-extjs-and-spring-framework/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/03/ajax-file-upload-with-extjs-and-spring-framework/</feedburner:origLink></item>
		<item>
		<title>Book Review: Ext JS 3.0 Cookbook by Jorge Ramon</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/m7c5R-nDukA/</link>
		<comments>http://loianegroner.com/2010/02/book-review-ext-js-3-0-cookbook-by-jorge-ramon/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 11:00:55 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[ExtJS]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=259</guid>
		<description><![CDATA[
In an effort to start off my New Year&#8217;s resolution of reading more technical books, today I am  going  to publish my first book review of this year. Let&#8217;s see how many books I am going to read until December/2010.
I am going to start writing a review about the Ext JS 3.0 Cookbook by Jorge [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;"><a href="http://www.packtpub.com/ext-js-3-0-cookbook/book?utm_source=loianegroner.com&amp;utm_medium=bookrev&amp;utm_content=other&amp;utm_campaign=mdb_002272"><img class="alignleft size-full wp-image-265" title="ExtJS 3.0 Cookbook" src="http://loianegroner.com/wp-content/uploads/2010/02/1847198708.png" alt="" width="100" height="123" /></a>In an effort to start off my New Year&#8217;s resolution of reading more technical books, today I am  going  to publish my first book review of this year. Let&#8217;s see how many books I am going to read until December/2010.</p>
<p style="text-align: justify;">I am going to start writing a review about the <a href="http://www.packtpub.com/ext-js-3-0-cookbook/book?utm_source=loianegroner.com&amp;utm_medium=bookrev&amp;utm_content=other&amp;utm_campaign=mdb_002272" target="_blank">Ext JS 3.0 Cookbook</a> by Jorge Ramon, published by <a href="http://www.packtpub.com/" target="_blank">Packt Publishing</a>, who sent me a review copy of this book. This is my honest opinion about it.</p>
<h3 style="text-align: justify;">Motivation</h3>
<p style="text-align: justify;">As you can see, if you navigate through my blog, I am an ExtJS fan and I use it daily in my work.</p>
<p style="text-align: justify;">ExtJS website has a good set of basic examples, but if you need something more fancy, you have to spend some time until you find what you need or make some customizations.</p>
<p style="text-align: justify;">The good thing about this book is that is very hands on, and it is very practical, just like a cookbook. It’s literally “<strong>109 great recipes for building impressive rich internet applications</strong>”. It contains those special recipes you spend some time looking for on the Internet.</p>
<p style="text-align: justify;">I do not recommend this book if you are trying to learn ExtJS, you need to learn some ExtJS basics concepts to understand it.</p>
<p style="text-align: justify;">However, if you are somewhat familiar with ExtJS and you are looking to boost your knowledge about what the framework is capable of, this is a great recipe book,  and I <strong>definitely recommend it</strong>. The code is clean and readable. It’s a handy reference and a set of problem/answers that solve discrete problems.</p>
<h3 style="text-align: justify;">Format of this book</h3>
<p style="text-align: justify;">This book is labeled as a cookbook, and it follows that convention quite well. There is a nice format for each recipe that mostly follows:</p>
<ol style="text-align: justify;">
<li>Definition/explanation      of the recipe &#8211; an introduction of the problem</li>
<li>The <strong>How      to do it…</strong>… section</li>
<li>The <strong>How      it works…</strong> section</li>
<li>The <strong>There’s      more…</strong> section</li>
<li>The <strong>See      also…</strong> section</li>
</ol>
<p style="text-align: justify;">This reoccurring pattern really helps you quickly find what you’re looking for, especially when you’re using the recipe as a refresher as opposed to initial discovery.</p>
<h3 style="text-align: justify;">My opinion about this book</h3>
<p style="text-align: justify;">It does what it says it is on the cover, and it is well organized, well written and consistent.</p>
<p style="text-align: justify;">The book is focused: there is no long introduction (personally, I <em>hate</em> books with long introductions).</p>
<p style="text-align: justify;">The “<em>How to do it…</em>” sections are is step-by-step, <em>and</em> explaining what each step does.</p>
<p style="text-align: justify;">The book covers excellent examples using components provided by ExtJS framework.</p>
<p style="text-align: justify;">As a cookbook, I think it missed some tips of <em>third party plug-ins</em> (and this is something I did not find in any ExtJS book), just like in JQuery page (maybe this is an idea for another book? <img src='http://loianegroner.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<h3 style="text-align: justify;">Conclusion</h3>
<p style="text-align: justify;">This book is a great reference for those who work with ExtJS everyday. This is one of the best books I have read about ExtJS. It is worth to have it.</p>
<p style="text-align: justify;">You can check out a <a href="http://www.packtpub.com/files/8709-ext-js-cookbook-sample-chapter-3-load-validate-and-submit-forms.pdf" target="_blank">sample chapter of Ext JS 3.0 Cookbook</a>.</p>
<p style="text-align: justify;">And this is the<a href="http://www.packtpub.com/ext-js-3-0-cookbook/book?utm_source=loianegroner.com&amp;utm_medium=bookrev&amp;utm_content=other&amp;utm_campaign=mdb_002272" target="_blank"> link to the book page</a>.</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=259&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F02%2Fbook-review-ext-js-3-0-cookbook-by-jorge-ramon%2F&amp;linkname=Book%20Review%3A%20Ext%20JS%203.0%20Cookbook%20by%20Jorge%20Ramon"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=m7c5R-nDukA:gJjKC6nLGcY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=m7c5R-nDukA:gJjKC6nLGcY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=m7c5R-nDukA:gJjKC6nLGcY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=m7c5R-nDukA:gJjKC6nLGcY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=m7c5R-nDukA:gJjKC6nLGcY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=m7c5R-nDukA:gJjKC6nLGcY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=m7c5R-nDukA:gJjKC6nLGcY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/m7c5R-nDukA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/02/book-review-ext-js-3-0-cookbook-by-jorge-ramon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/02/book-review-ext-js-3-0-cookbook-by-jorge-ramon/</feedburner:origLink></item>
		<item>
		<title>Spring MVC and AJAX with JSON</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/PSUCfsq8joQ/</link>
		<comments>http://loianegroner.com/2010/02/spring-mvc-and-ajax-with-json/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 11:43:23 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[JSON]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Json-lib]]></category>
		<category><![CDATA[json-lib-ext-spring]]></category>
		<category><![CDATA[Spring MVC]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=237</guid>
		<description><![CDATA[
This tutorial will walk through how to configure Spring MVC to return a JSON object to client browser.
One of the main decisions to be taken while developing AJAX applications is the format of messages passed by the server to the client browser. There are many options to choose from including plain text, XML, CSV etc. [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;"><a href="http://loianegroner.com/wp-content/uploads/2010/02/spring-json_loiane.jpg"><img class="aligncenter size-full wp-image-275" title="spring-json_loiane" src="http://loianegroner.com/wp-content/uploads/2010/02/spring-json_loiane.jpg" alt="" width="478" height="131" /></a>This tutorial will walk through how to configure Spring MVC to return a JSON object to client browser.</p>
<div id="_mcePaste" style="text-align: justify;">One of the main decisions to be taken while developing AJAX applications is the format of messages passed by the server to the client browser. There are many options to choose from including plain text, XML, CSV etc. One of the more popular choices today is the JavaScript Object Notation (JSON). JSON provides a nice name-value pair data format that is easy to generate and parse.</div>
<p style="text-align: justify;"><em>How to do it?</em></p>
<p style="text-align: justify;">You can use <a href="http://sourceforge.net/project/showfiles.php?group_id=171425" target="_blank">json-lib-ext-spring</a>. There are other libs, this is the one I found. If you know or use another one, please leave a comment with the library name. <img src='http://loianegroner.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Do not forget to download <a href="http://sourceforge.net/project/showfiles.php?group_id=171425">Json-lib</a> and its dependencies.</p>
<p style="text-align: justify;">Now you have to configure your XML files:</p>
<p style="text-align: justify;">Create a <strong>views.xml</strong> file under WEB-INF folder and paste the following code into it:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xmlns:util=&quot;http://www.springframework.org/schema/util&quot;
    xsi:schemaLocation= &quot;http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/util

http://www.springframework.org/schema/util/spring-util-2.5.xsd&quot;&gt;

 &lt;bean name=&quot;jsonView&quot; class=&quot;net.sf.json.spring.web.servlet.view.JsonView&quot; /&gt;

&lt;/beans&gt;
</pre>
<p style="text-align: justify;">Add this config to you spring configuration file:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;!-- json --&gt;
&lt;bean id=&quot;xmlFileViewResolver&quot; class=&quot;org.springframework.web.servlet.view.XmlViewResolver&quot;&gt;
	&lt;property name=&quot;location&quot;&gt;
		&lt;value&gt;/WEB-INF/views.xml&lt;/value&gt;
	&lt;/property&gt;
	&lt;property name=&quot;order&quot;&gt;
		&lt;value&gt;1&lt;/value&gt;
	&lt;/property&gt;
&lt;/bean&gt;
</pre>
<p style="text-align: justify;">Make sure to set the order if you are using any other view resolvers.</p>
<p style="text-align: justify;">Now you just have to use &#8220;jsonView&#8221; as the viewname and the model will be converted to JSONbefore being sent back to the client:</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
return new ModelAndView(&quot;jsonView&quot;, modelMap);
</pre>
<p style="text-align: left;">Here is an example:</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
	public ModelAndView getColumnsJson(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		Map&lt;String,Object&gt; modelMap = new HashMap&lt;String,Object&gt;(2);
		modelMap.put(&quot;rows&quot;, service.generateColumns());
		return new ModelAndView(&quot;jsonView&quot;, modelMap);

	}
</pre>
<p style="text-align: justify;">Happy coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=237&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F02%2Fspring-mvc-and-ajax-with-json%2F&amp;linkname=Spring%20MVC%20and%20AJAX%20with%20JSON"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=PSUCfsq8joQ:WtbHx2e9W2c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=PSUCfsq8joQ:WtbHx2e9W2c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=PSUCfsq8joQ:WtbHx2e9W2c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=PSUCfsq8joQ:WtbHx2e9W2c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=PSUCfsq8joQ:WtbHx2e9W2c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=PSUCfsq8joQ:WtbHx2e9W2c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=PSUCfsq8joQ:WtbHx2e9W2c:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/PSUCfsq8joQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/02/spring-mvc-and-ajax-with-json/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/02/spring-mvc-and-ajax-with-json/</feedburner:origLink></item>
		<item>
		<title>ExtJS: How to Export DataGrid to Excel</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/5A9znv4pA2g/</link>
		<comments>http://loianegroner.com/2010/02/extjs-how-to-export-datagrid-to-excel/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 11:06:36 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[export grid to Excel]]></category>
		<category><![CDATA[ExtJS Grid]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=222</guid>
		<description><![CDATA[

This tutorial will walk through how to export data from ExtJS DataGrid directly to Excel.
Sometimes the user wants to export the data from the datagrid to an excel file. There is an ExtJS third party plugin that does it for you.
There are some &#8220;issues&#8221; you have to be aware of before you start:

It needs a [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;"><a href="http://loianegroner.com/wp-content/uploads/2010/01/extjs_export_gridpanel_excel.png"><img class="aligncenter size-full wp-image-229" title="extjs_export_gridpanel_excel" src="http://loianegroner.com/wp-content/uploads/2010/01/extjs_export_gridpanel_excel.png" alt="" width="599" height="340" /></a></p>
<p style="text-align: justify;">This tutorial will walk through how to export data from ExtJS DataGrid directly to Excel.</p>
<p style="text-align: justify;">Sometimes the user wants to export the data from the datagrid to an excel file. There is an ExtJS <a href="http://www.extjs.com/forum/showthread.php?t=32400" target="_blank">third party plugin</a> that does it for you.</p>
<p style="text-align: justify;">There are some &#8220;issues&#8221; you have to be aware of before you start:</p>
<ul style="text-align: justify;">
<li>It needs a browser that supports <a href="http://en.wikipedia.org/wiki/Data_URI_scheme" target="_blank">data URLs</a>, such as Firefox, Opera and IE<strong>8</strong>.</li>
<li>I tested it with the following ExtJS versions: 2.2.1, 3.0, 3.0.3 and 3.1, but it only worked with ExtJS 3.0. If anyone is using other ExtJS version and the plugin worked, please, let me know.</li>
<li>It only works on the data in the Store &#8211; if you are using server-side paging, then perform this processing on the server. For quick and dirty conversion of a small table to Excel, this might be useful.</li>
<li>If the data in the Store is volatile (It gets reloaded or edited), the data URL will have to be recalculated.</li>
</ul>
<p style="text-align: justify;">Let&#8217;s get started:</p>
<p style="text-align: justify;">First, create a file in your projet and paste this content in it (I called it exporter.js): <a href="http://github.com/loiane/extjs-export-excel/blob/master/WebContent/js/exporter.js" target="_blank">http://github.com/loiane/extjs-export-excel/blob/master/WebContent/js/exporter.js</a> (this file has too many lines, that&#8217;s why I&#8217;m not going to past its content here).</p>
<p style="text-align: justify;">Then, in your datagrid, add this code:</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
var linkButton = new Ext.LinkButton({
        id: 'grid-excel-button',
        text: 'Export to Excel'
});

//create the Grid
var grid = new Ext.grid.GridPanel({
    bbar: new Ext.Toolbar({
        buttons: [linkButton]
    })
});

linkButton.getEl().child('a', true).href = 'data:application/vnd.ms-excel;base64,' +
Base64.encode(grid.getExcelXml());
</pre>
<p style="text-align: justify;">And if you try to export the data, it will look like this:</p>
<p style="text-align: justify;"><a href="http://loianegroner.com/wp-content/uploads/2010/01/extjs_export_gridpanel_excel_file.png"><img class="aligncenter size-full wp-image-230" title="extjs_export_gridpanel_excel_file" src="http://loianegroner.com/wp-content/uploads/2010/01/extjs_export_gridpanel_excel_file.png" alt="" width="627" height="359" /></a></p>
<p style="text-align: justify;">Feel free to change the color, fonts. Take a look in the code and try to understand it to make the changes you want.</p>
<p style="text-align: justify;"><a title="Ed Spencer" href="http://edspencer.net/" target="_blank">Ed Spencer</a> also developed a <a title="similar plugin" href="http://github.com/edspencer/Ext.ux.Exporter" target="_blank">similar plugin</a>. The source code is cleaner than this one. The output is the same, though.</p>
<p style="text-align: justify;">You can download my sample app from my GitHub repository (JEE project): <a href="http://github.com/loiane/extjs-export-excel" target="_blank">http://github.com/loiane/extjs-export-excel</a></p>
<p style="text-align: justify;">Happy coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=222&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F02%2Fextjs-how-to-export-datagrid-to-excel%2F&amp;linkname=ExtJS%3A%20How%20to%20Export%20DataGrid%20to%20Excel"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=5A9znv4pA2g:ttrjZnVgQ50:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=5A9znv4pA2g:ttrjZnVgQ50:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=5A9znv4pA2g:ttrjZnVgQ50:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=5A9znv4pA2g:ttrjZnVgQ50:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=5A9znv4pA2g:ttrjZnVgQ50:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=5A9znv4pA2g:ttrjZnVgQ50:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=5A9znv4pA2g:ttrjZnVgQ50:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/5A9znv4pA2g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/02/extjs-how-to-export-datagrid-to-excel/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/02/extjs-how-to-export-datagrid-to-excel/</feedburner:origLink></item>
		<item>
		<title>Integrating Spring Security with ExtJS Login Page</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/qiKbU5DGWQc/</link>
		<comments>http://loianegroner.com/2010/02/integrating-spring-security-with-extjs-login-page/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 10:00:28 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ExtJS + J2EE]]></category>
		<category><![CDATA[ExtJS Login Form]]></category>
		<category><![CDATA[Spring Security Login]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=210</guid>
		<description><![CDATA[

This tutorial will walk through how to configure ExtJS Login form (Ajax login form) instead of default Spring Security login.jsp.
Instead of using login.jsp from spring security, why do not use an ajax login form?
And How to integrate the ExtJS Login Form with Spring Security?
You did try to do it, the user is successfully authenticated, but [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: center;"><a href="http://loianegroner.com/wp-content/uploads/2010/01/spring_security_extjs_login.png" target="_blank"><img class="aligncenter size-full wp-image-212" title="spring_security_extjs_login" src="http://loianegroner.com/wp-content/uploads/2010/01/spring_security_extjs_login.png" alt="" width="445" height="257" /></a></p>
<p>This tutorial will walk through how to configure <a href="http://www.extjs.com/" target="_blank">ExtJS</a> Login form (Ajax login form) instead of default Spring Security login.jsp.</p>
<p>Instead of using login.jsp from spring security, why do not use an ajax login form?</p>
<p>And How to integrate the <a href="http://www.extjs.com/" target="_blank">ExtJS</a> Login Form with <a href="http://static.springsource.org/spring-security/site/" target="_blank">Spring Security</a>?</p>
<p>You did try to do it, the user is successfully authenticated, but the user is not redirected to the application main page. How to fix this situation? How to make it work?</p>
<p>It does not matter if you set the default-target-url in applicationContext-security.xml, or set a redirect URL on server side. It will not work this way.</p>
<p>The issue is that <a href="http://www.extjs.com/" target="_blank">ExtJS</a> make Ajax calls, and no redirect will work on server side. You have to redirect it on the client side, which is the ExtJS/javascript code.</p>
<p>First, you need to create the login form. You can use the <a href="http://www.extjs.com/learn/Tutorial:Basic_Login" target="_blank">javascript code provided by ExtJS</a> and you can modify it to work with spring security.</p>
<p>If you take a look at the login.jsp, you will see three key points:</p>
<ol>
<li>URL / form action: <strong>j_spring_security_check</strong></li>
<li>Username input name: <strong>j_username</strong></li>
<li>Password input name: <strong>j_password</strong></li>
</ol>
<p>That is what you need to customize to make ExtJS Login form works! But do not be too comfortable, there are some issues you need to fix to make it work perfectly.</p>
<p>Take a look how login.js looks like (after customization):</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
Ext.onReady(function(){
	Ext.QuickTips.init();

	// Create a variable to hold our EXT Form Panel.

	// Assign various config options as seen.
	var login = new Ext.FormPanel({
		labelWidth:80,
		url:'j_spring_security_check',
		frame:true,
		title:'Please Login',

		defaultType:'textfield',
		width:300,
		height:150,
		monitorValid:true,
		// Specific attributes for the text fields for username / password.
		// The &quot;name&quot; attribute defines the name of variables sent to the server.

		items:[{
			fieldLabel:'Username',
			name:'j_username',
			allowBlank:false
		},{
			fieldLabel:'Password',

			name:'j_password',
			inputType:'password',
			allowBlank:false
		}],

		// All the magic happens after the user clicks the button
		buttons:[{

			text:'Login',
			formBind: true,
			// Function that fires when user clicks the button
			handler:function(){
			login.getForm().submit({

				method:'POST',

				// Functions that fire (success or failure) when the server responds.
				// The server would actually respond with valid JSON,
				// something like: response.write &quot;{ success: true}&quot; or

				// response.write &quot;{ success: false, errors: { reason: 'Login failed. Try again.' }}&quot;
				// depending on the logic contained within your server script.
				// If a success occurs, the user is notified with an alert messagebox,

				// and when they click &quot;OK&quot;, they are redirected to whatever page
				// you define as redirect.

				success:function(){
				Ext.Msg.alert('Status', 'Login Successful!', function(btn, text){

					if (btn == 'ok'){
						window.location = 'main.action';
					}
				});

			},

			// Failure function, see comment above re: success and failure.
			// You can see here, if login fails, it throws a messagebox
			// at the user telling him / her as much.

			failure:function(form, action){
				if(action.failureType == 'server'){
					obj = Ext.util.JSON.decode(action.response.responseText);

					Ext.Msg.alert('Login Failed!', obj.errors.reason);
				}else{
					Ext.Msg.alert('Warning!', 'Authentication server is unreachable : ' + action.response.responseText);

				}
				login.getForm().reset();
			}

			});
		}
		}]
	});

	login.render('login');

});
</pre>
<p>If you make these changes and try to execute the application with a basic <strong>applicationContext-security.xml</strong> file, the user will be successfully authenticated, but is not going to be redirected.</p>
<p>What are we missing then?</p>
<p>You need to customize <a href="http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/web/authentication/AuthenticationProcessingFilter.html" target="_blank"><strong>AuthenticationProcessingFilter</strong> </a>class for spring security to perform actions on login.</p>
<p>The “onSuccessfulAuthentication” and “onUnsuccessfulAuthentication” methods need to return some JSON content. If user is successfully authenticated, then redirect to main page, otherwise, the application will show an error message.</p>
<p>This is <strong>MyAuthenticationProcessingFilter</strong> class:</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
package com.loiane.security;

import java.io.IOException;
import java.io.Writer;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException;
import org.springframework.security.ui.webapp.AuthenticationProcessingFilter;

public class MyAuthenticationProcessingFilter extends AuthenticationProcessingFilter {

	protected void onSuccessfulAuthentication(HttpServletRequest request,
			HttpServletResponse response, Authentication authResult)
	throws IOException {
		super.onSuccessfulAuthentication(request, response, authResult);

		HttpServletResponseWrapper responseWrapper = new HttpServletResponseWrapper(response);

		Writer out = responseWrapper.getWriter();

		String targetUrl = determineTargetUrl( request );
		out.write(&quot;{success:true, targetUrl : \'&quot; + targetUrl + &quot;\'}&quot;);
		out.close();

	}

	protected void onUnsuccessfulAuthentication( HttpServletRequest request,
			HttpServletResponse response, AuthenticationException failed )
	throws IOException {

		HttpServletResponseWrapper responseWrapper = new HttpServletResponseWrapper(response);

		Writer out = responseWrapper.getWriter();

		out.write(&quot;{ success: false, errors: { reason: 'Login failed. Try again.' }}&quot;);
		out.close();

	}

}
</pre>
<p>And this is how <strong>applicationContext-security.xml <strong>looks like</strong>:</strong></p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
	xmlns:security=&quot;http://www.springframework.org/schema/security&quot;
	xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
	xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd&quot;&gt;

	&lt;security:global-method-security /&gt;

	&lt;security:http auto-config=&quot;false&quot; entry-point-ref=&quot;authenticationProcessingFilterEntryPoint&quot;&gt;
		&lt;security:intercept-url pattern=&quot;/index.jsp&quot; filters=&quot;none&quot; /&gt;
		&lt;security:intercept-url pattern=&quot;/*.action&quot; access=&quot;ROLE_USER&quot; /&gt;
	&lt;/security:http&gt;

	&lt;bean id=&quot;authenticationProcessingFilter&quot; class=&quot;com.loiane.security.MyAuthenticationProcessingFilter&quot;&gt;
		&lt;security:custom-filter position=&quot;AUTHENTICATION_PROCESSING_FILTER&quot; /&gt;
		&lt;property name=&quot;defaultTargetUrl&quot; value=&quot;/main.html&quot; /&gt;
		&lt;property name=&quot;authenticationManager&quot; ref=&quot;authenticationManager&quot; /&gt;
	&lt;/bean&gt;

	&lt;security:authentication-manager alias=&quot;authenticationManager&quot; /&gt;

	&lt;bean id=&quot;authenticationProcessingFilterEntryPoint&quot;
		class=&quot;org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint&quot;&gt;
		&lt;property name=&quot;loginFormUrl&quot; value=&quot;/index.jsp&quot; /&gt;
		&lt;property name=&quot;forceHttps&quot; value=&quot;false&quot; /&gt;
	&lt;/bean&gt;

    &lt;!--
    Usernames/Passwords are
        rod/koala
        dianne/emu
        scott/wombat
        peter/opal
    These passwords are from spring security app example
    --&gt;
    &lt;security:authentication-provider&gt;
        &lt;security:password-encoder hash=&quot;md5&quot;/&gt;
        &lt;security:user-service&gt;
            &lt;security:user name=&quot;rod&quot; password=&quot;a564de63c2d0da68cf47586ee05984d7&quot; authorities=&quot;ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER&quot; /&gt;
            &lt;security:user name=&quot;dianne&quot; password=&quot;65d15fe9156f9c4bbffd98085992a44e&quot; authorities=&quot;ROLE_USER,ROLE_TELLER&quot; /&gt;
            &lt;security:user name=&quot;scott&quot; password=&quot;2b58af6dddbd072ed27ffc86725d7d3a&quot; authorities=&quot;ROLE_USER&quot; /&gt;
            &lt;security:user name=&quot;peter&quot; password=&quot;22b5c9accc6e1ba628cedc63a72d57f8&quot; authorities=&quot;ROLE_USER&quot; /&gt;
	    &lt;/security:user-service&gt;
	&lt;/security:authentication-provider&gt;
&lt;/beans&gt;
</pre>
<p>Now you can login using ExtJS login form.</p>
<p>I coded a sample application for this example. If you like it, you can download it from my GitHub: <a href="http://github.com/loiane/spring-security-extjs-login" target="_blank">http://github.com/loiane/spring-security-extjs-login</a></p>
<p>Happy coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=210&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F02%2Fintegrating-spring-security-with-extjs-login-page%2F&amp;linkname=Integrating%20Spring%20Security%20with%20ExtJS%20Login%20Page"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=qiKbU5DGWQc:w6qlJh9YhIY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=qiKbU5DGWQc:w6qlJh9YhIY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=qiKbU5DGWQc:w6qlJh9YhIY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=qiKbU5DGWQc:w6qlJh9YhIY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=qiKbU5DGWQc:w6qlJh9YhIY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=qiKbU5DGWQc:w6qlJh9YhIY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=qiKbU5DGWQc:w6qlJh9YhIY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/qiKbU5DGWQc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/02/integrating-spring-security-with-extjs-login-page/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/02/integrating-spring-security-with-extjs-login-page/</feedburner:origLink></item>
		<item>
		<title>Spring Security: Login and Logout Form JSP</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/CR-idM70TIA/</link>
		<comments>http://loianegroner.com/2010/01/spring-security-login-and-logout-form-jsp/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 10:00:52 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Security]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[logout]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=143</guid>
		<description><![CDATA[

When you configure spring security in your web application you can configure your login.jsp in the applicationContext-security.xml.
But how this page looks like? If you search around, you are not going to find it easily. There is many articles about how to configure spring security, but a few ones list login.jsp.
If you take a look in [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;"><a href="http://loianegroner.com/wp-content/uploads/2010/01/spring_security_login.jpg"><img class="aligncenter size-full wp-image-206" title="spring_security_login" src="http://loianegroner.com/wp-content/uploads/2010/01/spring_security_login.jpg" alt="" width="360" height="289" /></a></p>
<p style="text-align: justify;">When you configure spring security in your web application you can configure your <strong><em>login.jsp</em></strong> in the <strong>applicationContext-security.xml</strong>.</p>
<p style="text-align: justify;">But how this page looks like? If you search around, you are not going to find it easily. There is many articles about how to configure spring security, but a few ones list login.jsp.</p>
<p style="text-align: justify;">If you take a look in the spring security distribution file, you are going to find an example application, and inside it: login.jsp and logout link.</p>
<h3>login.jsp</h3>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;%@ taglib prefix='c' uri='http://java.sun.com/jstl/core_rt' %&gt;
&lt;%@ page import=&quot;org.springframework.security.ui.AbstractProcessingFilter&quot; %&gt;
&lt;%@ page import=&quot;org.springframework.security.ui.webapp.AuthenticationProcessingFilter&quot; %&gt;
&lt;%@ page import=&quot;org.springframework.security.AuthenticationException&quot; %&gt;

&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;Login&lt;/title&gt;
  &lt;/head&gt;

  &lt;body&gt;
    &lt;h1&gt;Login&lt;/h1&gt;

    &lt;c:if test=&quot;${not empty param.login_error}&quot;&gt;
      &lt;font color=&quot;red&quot;&gt;
        Your login attempt was not successful, try again.&lt;br/&gt;&lt;br/&gt;
        Reason: &lt;c:out value=&quot;${SPRING_SECURITY_LAST_EXCEPTION.message}&quot;/&gt;.
      &lt;/font&gt;
    &lt;/c:if&gt;

    &lt;form name=&quot;f&quot; action=&quot;&lt;c:url value='j_spring_security_check'/&gt;&quot; method=&quot;POST&quot;&gt;
      &lt;table&gt;
        &lt;tr&gt;&lt;td&gt;User:&lt;/td&gt;&lt;td&gt;&lt;input type='text' name='j_username' value='&lt;c:if test=&quot;${not empty param.login_error}&quot;&gt;&lt;c:out value=&quot;${SPRING_SECURITY_LAST_USERNAME}&quot;/&gt;&lt;/c:if&gt;'/&gt;&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td&gt;Password:&lt;/td&gt;&lt;td&gt;&lt;input type='password' name='j_password'&gt;&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td&gt;&lt;input type=&quot;checkbox&quot; name=&quot;_spring_security_remember_me&quot;&gt;&lt;/td&gt;&lt;td&gt;Don't ask for my password for two weeks&lt;/td&gt;&lt;/tr&gt;

        &lt;tr&gt;&lt;td colspan='2'&gt;&lt;input name=&quot;submit&quot; type=&quot;submit&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td colspan='2'&gt;&lt;input name=&quot;reset&quot; type=&quot;reset&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
      &lt;/table&gt;
    &lt;/form&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p style="text-align: justify;">The names of the fields MUST remain the same or else your authentication will fail.</p>
<p style="text-align: justify;">As far as the logout goes, all you have to do is send the user to a particular servlet define by spring-security.</p>
<h3>logout link:</h3>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;a href=&quot;&lt;c:url value=&quot;/j_spring_security_logout&quot;/&gt;&quot;&gt;Logout&lt;/a&gt;
</pre>
<p>That&#8217;s it!</p>
<p>Happy Coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=143&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F01%2Fspring-security-login-and-logout-form-jsp%2F&amp;linkname=Spring%20Security%3A%20Login%20and%20Logout%20Form%20JSP"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=CR-idM70TIA:tx0bP7U-glg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=CR-idM70TIA:tx0bP7U-glg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=CR-idM70TIA:tx0bP7U-glg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=CR-idM70TIA:tx0bP7U-glg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=CR-idM70TIA:tx0bP7U-glg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=CR-idM70TIA:tx0bP7U-glg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=CR-idM70TIA:tx0bP7U-glg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/CR-idM70TIA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/01/spring-security-login-and-logout-form-jsp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/01/spring-security-login-and-logout-form-jsp/</feedburner:origLink></item>
		<item>
		<title>Tutorial: Getting Started with Spring Security</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/yIJVBl3VnBU/</link>
		<comments>http://loianegroner.com/2010/01/tutorial-getting-started-with-spring-security/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 10:00:23 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Security]]></category>
		<category><![CDATA[Acegi]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=164</guid>
		<description><![CDATA[

This tutorial will cover a basic scenario where it  integrates Spring Security, using database-backed authentication, into an existing Spring web application.

Spring Security is a security framework that provides declarative security for your Spring-based applications. Spring Security provides a comprehensive security solution, handling authentication and authorization, at both the web request level and at the method [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;"><a href="http://loianegroner.com/wp-content/uploads/2010/01/spring-security.jpg"><img class="aligncenter size-full wp-image-204" title="spring security" src="http://loianegroner.com/wp-content/uploads/2010/01/spring-security.jpg" alt="" width="360" height="232" /></a></p>
<p style="text-align: justify;">This tutorial will cover a basic scenario where it  integrates <a href="http://static.springsource.org/spring-security/site/index.html" target="_blank">Spring Security</a>, using database-backed authentication, into an existing Spring web application.</p>
<blockquote>
<p style="text-align: justify;">Spring Security is a security framework that provides declarative security for your Spring-based applications. Spring Security provides a comprehensive security solution, handling authentication and authorization, at both the web request level and at the method invocation level. Based on the Spring Framework, Spring Security takes full advantage of dependency injection (DI) and aspect oriented techniques.</p>
</blockquote>
<blockquote>
<p style="text-align: justify;">Spring Security is also known as Acegi Security (or simply Acegi).</p>
</blockquote>
<p style="text-align: justify;">As with anything else related to spring the learning curve on spring-security is just as steep. But once you get the hang of it, it’s easy peasy and you can use the same configuration over and over again in your web apps.</p>
<p style="text-align: justify;">When I started to study Spring Security, I found <a href="http://static.springsource.org/spring-security/site/start-here.html" target="_blank">these suggested steps</a> at Spring Security page.</p>
<p style="text-align: justify;">If you want to configure Spring Security in your web application, follow the steps:</p>
<p style="text-align: justify;">First thing you need to do is to add the jar files in the application classpath. <a href="http://static.springsource.org/spring-security/site/downloads.html" target="_blank">Download Spring Security</a>, and from inside dist folder, copy the following jar files and paste them into your web application lib folder:</p>
<ul>
<li>spring-security-core-2.0.4.jar</li>
<li>spring-security-core-tiger-2.0.4.jar</li>
<li>spring-security-acl-2.0.4.jar</li>
<li>spring-security-taglibs-2.0.4.jar</li>
</ul>
<p>Also, you need to download <a href="http://commons.apache.org/codec/download_codec.cgi" target="_blank">Apache Commons Codec</a>: <em>commons-codec-1.3.jar</em></p>
<p>Now, let’s start with XML configuration.</p>
<h3><strong><span style="color: #800000;">Web.xml</span></strong></h3>
<p>Insert the following block of code. It should be inserted right after the/context-param end-tag.</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;context-param&gt;
	&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
	&lt;param-value&gt;
           /WEB-INF/security-applicationContext.xml
	&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;filter&gt;
	&lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;
	&lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;
	&lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;
	&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
</pre>
<h3><span style="color: #800000;"><strong>applicationContext-security.xml</strong></span></h3>
<p style="text-align: justify;">Let’s create the applicationContext-security.xml.</p>
<p style="text-align: justify;">I would suggest getting started with the applicationContext-security.xml that is found in the tutorial sample, and trimming it down a bit. Here’s what I got when I trimmed it down:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;!--
  - Sample namespace-based configuration
  -
  - $Id: applicationContext-security.xml 3019 2008-05-01 17:51:48Z luke_t $
  --&gt;

&lt;beans:beans xmlns=&quot;http://www.springframework.org/schema/security&quot;
    xmlns:beans=&quot;http://www.springframework.org/schema/beans&quot;
    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-2.0.1.xsd&quot;&gt;

	&lt;global-method-security secured-annotations=&quot;enabled&quot;&gt;
	&lt;/global-method-security&gt;

    &lt;http auto-config=&quot;true&quot;&gt;
        &lt;intercept-url pattern=&quot;/**&quot; access=&quot;IS_AUTHENTICATED_ANONYMOUSLY&quot; /&gt;
    &lt;/http&gt;

    &lt;!--
    Usernames/Passwords are
        rod/koala
        dianne/emu
        scott/wombat
        peter/opal
    --&gt;
    &lt;authentication-provider&gt;
        &lt;password-encoder hash=&quot;md5&quot;/&gt;
        &lt;user-service&gt;
            &lt;user name=&quot;rod&quot; password=&quot;a564de63c2d0da68cf47586ee05984d7&quot; authorities=&quot;ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER&quot; /&gt;
            &lt;user name=&quot;dianne&quot; password=&quot;65d15fe9156f9c4bbffd98085992a44e&quot; authorities=&quot;ROLE_USER,ROLE_TELLER&quot; /&gt;
            &lt;user name=&quot;scott&quot; password=&quot;2b58af6dddbd072ed27ffc86725d7d3a&quot; authorities=&quot;ROLE_USER&quot; /&gt;
            &lt;user name=&quot;peter&quot; password=&quot;22b5c9accc6e1ba628cedc63a72d57f8&quot; authorities=&quot;ROLE_USER&quot; /&gt;
	    &lt;/user-service&gt;
	&lt;/authentication-provider&gt;
&lt;/beans:beans&gt;
</pre>
<p>Now, you can try to execute the web application.</p>
<p>If you try to execute the app and get this <strong>exception</strong>:</p>
<pre class="brush: java; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext-security.xml]; nested exception is java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
</pre>
<p>Download <strong><em>aspectjrt-1.5.4.jar</em></strong> and add it to your application classpath. It will work.</p>
<p><strong>Let’s make some changes in applicationContext-security.xml.</strong></p>
<p>First change: replace the following code</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http auto-config=&quot;true&quot;&gt;
        &lt;intercept-url pattern=&quot;/**&quot; access=&quot;IS_AUTHENTICATED_ANONYMOUSLY&quot; /&gt;
&lt;/http&gt;
</pre>
<p>for</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http auto-config=&quot;true&quot;&gt;

    	&lt;!-- Don't set any role restrictions on login.jsp --&gt;
    	&lt;intercept-url pattern=&quot;/login.jsp&quot; access=&quot;IS_AUTHENTICATED_ANONYMOUSLY&quot; /&gt;

    	&lt;!-- Restrict access to ALL other pages --&gt;
        &lt;intercept-url pattern=&quot;/**&quot; access=&quot;ROLE_USER&quot; /&gt;

        &lt;!-- Set the login page and what to do if login fails --&gt;
        &lt;form-login login-page=&quot;/login.jsp&quot; authentication-failure-url=&quot;/login.jsp?login_error=1&quot; /&gt;

&lt;/http&gt;
</pre>
<p style="text-align: justify;">The <strong>auto-config</strong> attribute basically tells spring-security to configure default settings for itself.</p>
<p style="text-align: justify;">The <strong>login.jsp</strong> is allowed to be access from ANY role.</p>
<p style="text-align: justify;">Rrestricting access to it would mean that no one would be able to reach even the login page.</p>
<p style="text-align: justify;">Note how we are using a <em>jsp</em> instead of a <em>spring managed controller</em>. The login page does not need to be a spring managed controller at all.</p>
<p style="text-align: justify;">We also tell spring-security to <strong>restrict access</strong> to ALL url’s to only those users who have the role <strong>ROLE_USER</strong>.</p>
<p style="text-align: justify;">Let’s say you have more than one user role. <strong>Mapping URLs to roles</strong> is really easy. In your <em>http </em>element, simply put successive elements like this:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;intercept-url pattern=&quot;/admin/*.do&quot; access=&quot;ROLE_ADMIN&quot;  /&gt;
&lt;intercept-url pattern=&quot;/manager/*.do&quot; access=&quot;ROLE_MANAGER&quot;  /&gt;
&lt;intercept-url pattern=&quot;/**.do&quot; access=&quot;ROLE_USER,ROLE_ADMIN, ROLE_MANAGER&quot;  /&gt;
</pre>
<p style="text-align: justify;">Of course you do not want to put all the <strong>usernames </strong>and <strong>passwords </strong>and theirs <strong>roles </strong>in the <em>applicationContext-security.xml</em>. But how do we tell spring-security to get all user authentication details from the database?</p>
<p style="text-align: justify;">Put the following code in <em>applicationContext-security.xml</em> (replace usernames and passwords block of code)</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;!-- Configure the authentication provider --&gt;
&lt;security:authentication-provider&gt;
	&lt;security:jdbc-user-service data-source-ref=&quot;dataSource&quot; /&gt;
&lt;/security:authentication-provider&gt;
</pre>
<p style="text-align: justify;">This requires that a dataSource be created first.</p>
<p style="text-align: justify;">Now you ask: <em>what does the convention over configuration assume my database tables look like?</em></p>
<p style="text-align: justify;">You should be aware that the default authentication provider requires the database structure to be in a certain way:</p>
<p><a href="http://loianegroner.com/wp-content/uploads/2010/01/spring-security-tutorial-database.png"><img class="aligncenter size-full wp-image-169" title="spring-security-tutorial-database" src="http://loianegroner.com/wp-content/uploads/2010/01/spring-security-tutorial-database.png" alt="" width="542" height="164" /></a></p>
<pre class="brush: sql; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
CREATE TABLE users
(
  username character varying(50) NOT NULL,
  &quot;password&quot; character varying(50) NOT NULL,
  enabled boolean NOT NULL,
  CONSTRAINT users_pkey PRIMARY KEY (username)
);

CREATE TABLE authorities
(
  username character varying(50) NOT NULL,
  authority character varying(50) NOT NULL,
  CONSTRAINT fk_authorities_users FOREIGN KEY (username)
      REFERENCES users (username) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
);

CREATE UNIQUE INDEX ix_auth_username
  ON authorities
  USING btree
  (username, authority);
</pre>
<p style="text-align: justify;">If you want to configure the queries that are used, simply match the available attributes on the jdbc-user-service element to the SQL queries in the Java class referenced above.</p>
<p style="text-align: justify;">For example: You want to simplify tha database schema by adding the user’s role directly to the user table. Let’s modify the xml configuration:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;jdbc-user-service data-source-ref=&quot;dataSource&quot;
    authorities-by-username-query=&quot;select username,authority from users where username=?&quot;/&gt;
</pre>
<p style="text-align: justify;">There are a couple other pages that maybe you want to configure.</p>
<p style="text-align: justify;"><strong>Access Denied</strong>: This is the page the user will see if they are denied access to the site due to lack of authorization (i.e. tried to hit a page that they didn’t have access to hit, even though they were authenticated properly). This is configured as follows:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http ... access-denied-page=&quot;/accessDenied.jsp&quot;&gt;
     ...
&lt;/http&gt;
</pre>
<p style="text-align: justify;"><strong>Default Target URL:</strong> This is where the user will be redirected upon successful login. This can (and probably should) be a page located under Spring control. Configured as follows:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http ... &gt;
    ...
        &lt;form-login ... default-target-url=&quot;/home.do&quot;/&gt;
    ...
&lt;/http&gt;
</pre>
<p style="text-align: justify;"><strong>Logout URL</strong>: The page where the user is redirected upon a successful logout. This can be a page located under Spring control too (provided that it allows anonymous access):</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http ... &gt;
    ...
    	&lt;logout logout-success-url=&quot;/home.do&quot;/&gt;
    ...
&lt;/http&gt;
</pre>
<p style="text-align: justify;"><strong>Login Failure URL</strong>: Where the user will be sent if there was an authentication failure. Typically this is back to the login form, with a URL parameter, such as:</p>
<pre class="brush: xml; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
&lt;http ... &gt;
    ...
        &lt;form-login ... authentication-failure-url=&quot;/login.jsp?login_error=1&quot;/&gt;
    ...
&lt;/http&gt;
</pre>
<p>This is what you need to get started with Spring Security.</p>
<p>Next week, I am going to post how Spring Security <strong>login.jsp</strong> looks like.</p>
<p>Happy coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=164&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F01%2Ftutorial-getting-started-with-spring-security%2F&amp;linkname=Tutorial%3A%20Getting%20Started%20with%20Spring%20Security"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=yIJVBl3VnBU:WSwNnSY_qws:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=yIJVBl3VnBU:WSwNnSY_qws:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=yIJVBl3VnBU:WSwNnSY_qws:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=yIJVBl3VnBU:WSwNnSY_qws:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=yIJVBl3VnBU:WSwNnSY_qws:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=yIJVBl3VnBU:WSwNnSY_qws:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=yIJVBl3VnBU:WSwNnSY_qws:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/yIJVBl3VnBU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/01/tutorial-getting-started-with-spring-security/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/01/tutorial-getting-started-with-spring-security/</feedburner:origLink></item>
		<item>
		<title>My DeveloperWorks: What’s life like for a female Java Developer in Brazil?</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/ZgzL1S1NAQc/</link>
		<comments>http://loianegroner.com/2010/01/my-developerworks-whats-life-like-for-a-female%c2%a0java-developer-in-brazil/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 12:55:57 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[developerWorks]]></category>
		<category><![CDATA[My developerWorks]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=189</guid>
		<description><![CDATA[
Just wanted to share with you my interview on Valerie&#8217;s My developerWorks blog: Interview with Loiane Groner, Java developer in Brazil.
I&#8217;m very happy, because this interview was the most viewed entry on My developerWorks yesterday:
And if you look at the corner, you will see my blog in &#8220;Featured Blogs&#8220;!  
It is just a copy [...]]]></description>
			<content:encoded><![CDATA[
<p>Just wanted to share with you my interview on Valerie&#8217;s My developerWorks blog: <a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/yinmeetsyang/entry/interview_with_loiane_groner_java_developer_in_brazil7?lang=en_us&amp;ca=dth-mydw" target="_blank">Interview with Loiane Groner, Java developer in Brazil</a>.</p>
<p>I&#8217;m very happy, because this interview was the <strong>most viewed entry</strong> on My developerWorks yesterday:</p>
<div id="attachment_1404" class="wp-caption aligncenter" style="width: 603px"><a href="http://loianegroner.com/wp-content/uploads/2010/01/developerworks_loiane.png" target="_blank"><img class="size-full wp-image-1404" title="developerworks_loiane" src="http://loianegroner.com/wp-content/uploads/2010/01/developerworks_loiane.png" alt="click on the picture to see full size" width="593" height="407" /></a><p class="wp-caption-text">click on the picture to see full size</p></div>
<p>And if you look at the corner, you will see my blog in &#8220;<strong>Featured Blogs</strong>&#8220;! <img src='http://loianegroner.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It is just a copy from this one. The tutorials are the same.</p>
<p>There is also some twitter statuses:</p>
<p>From Valerie&#8217;s:</p>
<blockquote>
<div id="_mcePaste"><strong>Cool new interview on my blog w/ Loiane Groner, java developer making her mark in Brazil: <a href="http://bit.ly/8FbnzL" target="_blank">http://bit.ly/8FbnzL</a></strong> (<a href="http://twitter.com/vmichelle/status/7634056149" target="_blank">http://twitter.com/vmichelle/status/7634056149</a> )</div>
</blockquote>
<p>From developerWorks&#8217;:</p>
<blockquote><p><strong>What&#8217;s life like for a female #javadeveloper in Brazil? Interview w/ Loiane Groner <a href="http://bit.ly/8FbnzL" target="_blank">http://bit.ly/8FbnzL</a></strong> (<a href="http://twitter.com/developerworks/status/7634404961" target="_blank">http://twitter.com/developerworks/status/7634404961</a> )</p></blockquote>
<p style="text-align: left;">Thank you Valerie, for giving me this opportunity!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=189&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F01%2Fmy-developerworks-whats-life-like-for-a-female%25c2%25a0java-developer-in-brazil%2F&amp;linkname=My%20DeveloperWorks%3A%20What%26%238217%3Bs%20life%20like%20for%20a%20female%C2%A0Java%20Developer%20in%20Brazil%3F"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=ZgzL1S1NAQc:9q_IKQYekMg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=ZgzL1S1NAQc:9q_IKQYekMg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=ZgzL1S1NAQc:9q_IKQYekMg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=ZgzL1S1NAQc:9q_IKQYekMg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=ZgzL1S1NAQc:9q_IKQYekMg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=ZgzL1S1NAQc:9q_IKQYekMg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=ZgzL1S1NAQc:9q_IKQYekMg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/ZgzL1S1NAQc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/01/my-developerworks-whats-life-like-for-a-female%c2%a0java-developer-in-brazil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/01/my-developerworks-whats-life-like-for-a-female%c2%a0java-developer-in-brazil/</feedburner:origLink></item>
		<item>
		<title>How to Display an Image/Link Inside an Ext JS GridPanel’s Cell</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/luOWuynszHc/</link>
		<comments>http://loianegroner.com/2010/01/how-to-display-an-imagelink-inside-an-ext-js-gridpanels-cell/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 10:00:11 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[ExtJS + J2EE]]></category>
		<category><![CDATA[ExtJS Grid]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=114</guid>
		<description><![CDATA[
This tutorial will walk through how you can display an image/link inside an Ext GridPanel cell using a renderer function.

To explain this approach, I will use a sample GridPanel that displays some dummy contact information (name, phone, birthday and email). Together with email data, we will display a link (mailto) and an email link icon/image.
How to do it
First, [...]]]></description>
			<content:encoded><![CDATA[
<p>This tutorial will walk through how you can display an image/link inside an Ext <strong>GridPanel</strong> cell using a renderer function.</p>
<p><a href="http://loianegroner.com/wp-content/uploads/2009/12/extjs-grid-cell-with-image-and-link.png"><img class="aligncenter size-full wp-image-138" title="extjs-grid-cell-with-image-and-link" src="http://loianegroner.com/wp-content/uploads/2009/12/extjs-grid-cell-with-image-and-link.png" alt="" width="602" height="278" /></a></p>
<p>To explain this approach, I will use a sample <strong>GridPanel</strong> that displays some dummy contact information (name, phone, birthday and email). Together with email data, we will display a link (mailto) and an email link icon/image.</p>
<h3><span style="color: #800000;">How to do it</span></h3>
<p>First, we need some data to work with.  An <strong>ArrayStore</strong> with a few dummy records:</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
//array with data - dummy data
var myData = [
    ['Meyers, Quyn R.',	    '(943) 570-5141', 'Proin@nullamagna.ca',    '05/13/1990'],
	['Whitney, Tad T.',	    '(547) 743-0343', 'vulputate@acurnaUt.org', '05/10/1987'],
	['Lawrence, Flavia J.',	'(404) 826-4553', 'dapibus.id@accumsan.ca',	'01/05/1988'],
	['Morales, Susan I.',	'(276) 707-8084', 'tristique@seacmetus.com','03/09/1992'],
	['Merrill, Desiree Q.', '(911) 546-0559', 'dictum.cursus@vel.ca',   '01/07/1981'],
	['Hampton, Willa Y.',	'(729) 562-8303', 'nascetur@stellus.ca',    '06/17/1991'],
	['Brewer, Brynne F.',	'(818) 302-4393', 'ligula@ullamcorper.org',	'04/20/1989'],
	['Marsh, Drew D.',	    '(645) 671-2779', 'et.euismod.et@eget.ca',	'02/13/1990']
];
</pre>
<p>GirdPanel definition:</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
// create grid
var grid = new Ext.grid.GridPanel({
    store: store,
    columns: [
        {header: 'NAME', width: 170, sortable: true, dataIndex: 'name'},
        {header: 'PHONE #', width: 150, sortable: true, dataIndex: 'phone'},
        {header: 'BIRTHDAY', width: 100, sortable: true, dataIndex: 'birthday',
        	renderer: Ext.util.Format.dateRenderer('d/m/Y')},
        {header: 'EMAIL', width: 160, sortable: true, dataIndex: 'email',
        	renderer: renderIcon }
    ],
    title: 'My Contacts',
    autoHeight:true,
    width:600,
	renderTo: document.body,
	frame:true
});
</pre>
<h3><span style="color: #800000;">How it works</span></h3>
<pre class="brush: jscript; collapse: false; wrap-lines: false;">
{header: 'EMAIL', width: 160, sortable: true, dataIndex: 'email', renderer: renderIcon }
</pre>
<p>The insteresting part in the above code is the trend column&#8217;s <strong>mail</strong>.  A renderer function is an interceptor method that can change the grid cell before it is rendered.</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
//image path
var IMG_EMAIL = '/gridcell-with-image/img/email_link.png';

//renderer function
function renderIcon(val) {
    return '&lt;a href=&quot;mailto:' + val + '&quot;&gt;'+ '&lt;img src=&quot;' + IMG_EMAIL + '&quot;&gt; ' + val  +'&lt;/a&gt;';
}
</pre>
<p>Inside the renderer function we just put some HTML code to display what we want. Pretty easy!</p>
<p>Now you can create your own renderer functions!</p>
<p>Happy coding!</p>
<p>Download (J2EE project): <a href="http://github.com/loiane/gridcell-with-image" target="_blank"><img title="public" src="http://www.loiane.com/wp-content/uploads/2009/11/public.png" alt="public" width="16" height="16" /> http://github.com/loiane/gridcell-with-image</a></p>
<p>Portuguese: <a href="http://www.loiane.com/2010/01/extjs-como-colocar-icone-e-link-nas-celulas-do-grid/" target="_blank">http://www.loiane.com/2010/01/extjs-como-colocar-icone-e-link-nas-celulas-do-grid/</a></p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=114&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F01%2Fhow-to-display-an-imagelink-inside-an-ext-js-gridpanels-cell%2F&amp;linkname=How%20to%20Display%20an%20Image%2FLink%20Inside%20an%20Ext%20JS%20GridPanel%26%238217%3Bs%20Cell"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=luOWuynszHc:Xdr7ja5CsFQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=luOWuynszHc:Xdr7ja5CsFQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=luOWuynszHc:Xdr7ja5CsFQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=luOWuynszHc:Xdr7ja5CsFQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=luOWuynszHc:Xdr7ja5CsFQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=luOWuynszHc:Xdr7ja5CsFQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=luOWuynszHc:Xdr7ja5CsFQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/luOWuynszHc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/01/how-to-display-an-imagelink-inside-an-ext-js-gridpanels-cell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/01/how-to-display-an-imagelink-inside-an-ext-js-gridpanels-cell/</feedburner:origLink></item>
		<item>
		<title>Ext.Window Panel: Show or Hide?</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/Tw_9YoRPqes/</link>
		<comments>http://loianegroner.com/2010/01/ext-window-panel-show-or-hide/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 10:00:16 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Window]]></category>
		<category><![CDATA[Ext.Window]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=117</guid>
		<description><![CDATA[
From this short tutorial you will learn how to control the Ext.Window panel. It explains how to hide or show it on button click.

Problem: you created a Ext.Window, clicked on a button or link (or something else) and a window showed up. You clicked on close button (up right corner) and it closed. You tried [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;">From this short tutorial you will learn how to control the Ext.Window panel. It explains how to hide or show it on button click.</p>
<p style="text-align: justify;"><a href="http://loianegroner.com/wp-content/uploads/2009/12/ext.window_hide_or_close.png"><img class="aligncenter size-full wp-image-119" title="ext.window_hide_or_close" src="http://loianegroner.com/wp-content/uploads/2009/12/ext.window_hide_or_close.png" alt="" width="511" height="312" /></a></p>
<p style="text-align: justify;"><strong>Problem</strong>: you created a Ext.Window, clicked on a button or link (or something else) and a window showed up. You clicked on close button (up right corner) and it closed. You tried again, but the window did not show from second time (and on) &#8211; maybe you got an error message in Firebug console.</p>
<p style="text-align: justify;"><strong>Solution</strong>: the default behaviour of this componet is to close. But close means destroy the component, so the second time you tried to open it, it did not work. The solution is to hide the window, so you can reuse it when you need it again.</p>
<p style="text-align: justify;">Let&#8217;s see some code (Reference: <a href="http://www.extjs.com/deploy/dev/examples/window/hello.html" target="_blank">Hello Word Window</a>)</p>
<p style="text-align: justify;"><strong>HTML</strong>:</p>
<pre class="brush: xml; collapse: false; toolbar: true; wrap-lines: false;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Ext.Window: close or hide&lt;/title&gt;

	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/ext-window/ext-3.0.3/resources/css/ext-all.css&quot; /&gt;

	&lt;script src=&quot;/ext-window/ext-3.0.3/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;/ext-window/ext-3.0.3/ext-all.js&quot;&gt;&lt;/script&gt;

	&lt;script src=&quot;/ext-window/js/ext-window.js&quot;&gt;&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;
	&lt;input type=&quot;button&quot; id=&quot;show-btn&quot; value=&quot;Show Window&quot; /&gt;

	&lt;div id=&quot;hello-win&quot; class=&quot;x-hidden&quot;&gt;

    &lt;div class=&quot;x-window-header&quot;&gt;Hello Dialog&lt;/div&gt;
    &lt;div id=&quot;hello-tabs&quot;&gt;
        &lt;!-- Auto create tab 1 --&gt;
        &lt;div class=&quot;x-tab&quot; title=&quot;Hello World&quot;&gt;
            &lt;p&gt;Ext.Window Panel: Close or Hide?&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>JS</strong>:</p>
<pre class="brush: jscript; collapse: false; first-line: 1; toolbar: true; wrap-lines: false;">
Ext.onReady(function(){

	Ext.BLANK_IMAGE_URL = '/ext-window/ext-3.0.3/resources/images/default/s.gif';

    var win;
    var button = Ext.get('show-btn');

    var tab = new Ext.TabPanel({
        applyTo: 'hello-tabs',
        autoTabs:true,
        activeTab:0,
        deferredRender:false,
        border:false
    });

    button.on('click', function(){

        // create the window on the first click and reuse on subsequent clicks
    	//cria a janela no primeiro clique e a reusa nos próximos cliques
        if(!win){
            win = new Ext.Window({
                applyTo:'hello-win',
                layout:'fit',
                width:500,
                height:300,
                closeAction:'hide', //'close' - destroy the component
                plain: true,

                items: tab,

                buttons: [{
                    text: 'Close',
                    handler: function(){
                        win.hide();
                    }
                }]
            });
        }
        win.show(this);
    });
});
</pre>
<p>Happy Coding!</p>
<p>Download (J2EE project): <a href="http://github.com/loiane/ext-window" target="_blank"><img title="public" src="http://www.loiane.com/wp-content/uploads/2009/11/public.png" alt="public" width="16" height="16" /> http://github.com/loiane/ext-window</a></p>
<p>Portuguese: ExtJS: <a href="http://www.loiane.com/2010/01/extjs-ext-window-hide-ou-close/" target="_blank">Ext.Window: hide ou close?</a></p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=117&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2010%2F01%2Fext-window-panel-show-or-hide%2F&amp;linkname=Ext.Window%20Panel%3A%20Show%20or%20Hide%3F"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Tw_9YoRPqes:eM6AhK2t_xo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Tw_9YoRPqes:eM6AhK2t_xo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Tw_9YoRPqes:eM6AhK2t_xo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=Tw_9YoRPqes:eM6AhK2t_xo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Tw_9YoRPqes:eM6AhK2t_xo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Tw_9YoRPqes:eM6AhK2t_xo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=Tw_9YoRPqes:eM6AhK2t_xo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/Tw_9YoRPqes" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2010/01/ext-window-panel-show-or-hide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2010/01/ext-window-panel-show-or-hide/</feedburner:origLink></item>
		<item>
		<title>Getting Started with ExtJS DataGrid</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/7g-DzEDO00U/</link>
		<comments>http://loianegroner.com/2009/12/getting-started-with-extjs-datagrid/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 14:12:55 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[ExtJS + J2EE]]></category>
		<category><![CDATA[ExtJS Grid]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=93</guid>
		<description><![CDATA[
This tutorial will walk through how to implement a simple Ext JS datagrid,  using a GridPanel to display structured data in a user-friendly grid.
Screeshot for this tutorial:

The grid is, without doubt, one of the most widely-used components of Ext. We all have data, and this needs to be presented to the end user in [...]]]></description>
			<content:encoded><![CDATA[
<p>This tutorial will walk through how to implement a simple Ext JS datagrid,  using a GridPanel to display structured data in a user-friendly grid.</p>
<p>Screeshot for this tutorial:</p>
<p><img class="aligncenter size-full wp-image-99" title="extjs_simple_grid_loiane" src="http://loianegroner.com/wp-content/uploads/2009/12/extjs_simple_grid_loiane.PNG" alt="extjs_simple_grid_loiane" width="591" height="235" /></p>
<p>The grid is, without doubt, one of the most widely-used components of Ext. We all have data, and this needs to be presented to the end user in an easy-to-understand manner. The spreadsheet (a.k.a.: grid) is the perfect way to do this—the concept has been around for quite a while because it works. Ext takes that concept and makes it flexible and downright amazing!</p>
<h3><span style="color: #800000;">Terminology:</span></h3>
<p>Displaying data in a grid requires two Ext components:</p>
<ul>
<li>A store that acts like an in-memory database, keeping track of the data we want to display</li>
<li>A grid panel that provides a way to display the data stored in a data store</li>
</ul>
<p>Before we start to create each of these, let&#8217;s look at some of the terminology that will be used, because this can be confusing at first:</p>
<ul>
<li>Columns: This refers to a whole column of data, and would contain information only relevant to the display of data down through the entire column, including the heading. In Ext JS, this information is part of the Column Model.</li>
<li>Fields: This also refers to an entire column of data, but is refers to the actual data values. With Ext JS, this is used in the reader, for loading data.</li>
</ul>
<p>Before we get started, you must configure your project to use Ext JS library. If you do not know how to do it, you can check it out <a href="http://loianegroner.com/2009/12/getting-started-with-extjs-in-your-j2ee-project/" target="_blank">this tutorial</a>.</p>
<h3><span style="color: #800000;">Setting up a data store:</span></h3>
<p>The first thing we need to do is set up our data, which will be placed into a data store. The data store types available in Ext give us a consistent way of reading different data formats such as XML and JSON, and reading this data in a consistent way throughout all of the Ext widgets. Regardless of whether this data it is JSON, XML, an array, or even a custom data type of your own, it&#8217;s all accessed in the same way thanks to the data store.</p>
<p>Some data stores available, by default, in Ext are:</p>
<ul>
<li> Simple (Array)</li>
<li> XML</li>
<li> JSON</li>
</ul>
<h3><span style="color: #800000;">Step 1: Adding data to our data store:</span></h3>
<p>In this first example, we are going to use a simple (array) data store, represeting a simple agenda (name, phone, email and birthday date).</p>
<p>The data store needs two things: the data itself, and a description of the data—or what could be thought of as the fields. A reader will be used to read the data from the array, and this is where we define the fields of data contained in our array. The reader acts as an interpreter of sorts; it knows how to interpret a string of data as rows of data to be used with Ext JS.</p>
<h3><span style="color: #800000;">Step 2:</span> <span style="color: #800000;">Defining your data for the data store</span></h3>
<p>The reader needs to know which fields to read in as data for our data store, so we will need to define these.</p>
<p>Fields are defined using an array of objects—or if the data is to be read verbatim, just a string specifying the field name. All except one of our fields in this example can be defined with a simple name. For example, the title field could be defined using an object like this:</p>
<p>{name: &#8216;title&#8217;}</p>
<p>However, in our case, because we are just reading in the data as a string, we can simply pass the field name and save some typing:</p>
<p>&#8216;title&#8217;</p>
<p>The released field is different because we want to treat its data appropriately, as a date type. For each field format type, there may be options to define the format of the data more explicitly. With the date type, there is a dateFormat string that needs to be defined. If you have used PHP, these date format strings will look familiar, because Ext uses the same date format strings that PHP does.</p>
<p>{name: &#8216;released&#8217;, type: &#8216;date&#8217;, dateFormat: &#8216;Y-m-d&#8217;}</p>
<p>Here are some datatypes supported by ExtJS: string, int, float, boolean, date.</p>
<h3><span style="color: #800000;">Step 3: Displaying the GrigPanel</span></h3>
<p>The thing that pulls everything together is the GridPanel, which takes care of placing the data into columns and rows, along with adding column headers, and boxing everything together in a neat little package.</p>
<h3><span style="color: #800000;">Code:</span></h3>
<pre class="brush: jscript; collapse: false; toolbar: true; wrap-lines: false;">
Ext.onReady(function(){

	Ext.BLANK_IMAGE_URL = '/extjs-grid-simple-array/ext-3.0.3/resources/images/default/s.gif';

	//array with data
    var myData = [
        ['Meyers, Quyn R.',	    '(943) 570-5141', 'Proin@nullamagna.ca',    '05/13/1990'],
		['Whitney, Tad T.',	    '(547) 743-0343', 'vulputate@acurnaUt.org', '05/10/1987'],
		['Lawrence, Flavia J.',	'(404) 826-4553', 'dapibus.id@accumsan.ca',	'01/05/1988'],
		['Morales, Susan I.',	'(276) 707-8084', 'tristique@seacmetus.com','03/09/1992'],
		['Merrill, Desiree Q.', '(911) 546-0559', 'dictum.cursus@vel.ca',   '01/07/1981'],
		['Hampton, Willa Y.',	'(729) 562-8303', 'nascetur@stellus.ca',    '06/17/1991'],
		['Brewer, Brynne F.',	'(818) 302-4393', 'ligula@ullamcorper.org',	'04/20/1989'],
		['Marsh, Drew D.',	    '(645) 671-2779', 'et.euismod.et@eget.ca',	'02/13/1990']
    ];

    //data store - description of fields
    var store = new Ext.data.SimpleStore({
        fields: [
           'name',
           'phone',
           'email',
           {name: 'birthday', type: 'date', dateFormat: 'd/m/Y'}
        ]
    });

    //read the data from simple array
    store.loadData(myData);

    // create grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {header: &amp;quot;NAME&amp;quot;, width: 170, sortable: true, dataIndex: 'name'},
            {header: &amp;quot;PHONE #&amp;quot;, width: 150, sortable: true, dataIndex: 'phone'},
            {header: &amp;quot;EMAIL&amp;quot;, width: 150, sortable: true, dataIndex: 'email'},
            {header: &amp;quot;BIRTHDAY&amp;quot;, width: 100, sortable: true, dataIndex: 'birthday',
            	renderer: Ext.util.Format.dateRenderer('d/m/Y')}
        ],
        title: 'My Contacts',
        autoHeight:true,
        width:590,
		renderTo: document.body,
		frame:true
    });

    //render to DIV
    grid.render('grid-simple-array');
});
</pre>
<p>You can download the source code in my Github: <a href="http://github.com/loiane/extjs-grid-simple-array" target="_blank"><img class="alignnone size-full wp-image-1238" title="public" src="http://www.loiane.com/wp-content/uploads/2009/11/public.png" alt="public" width="16" height="16" /> http://github.com/loiane/extjs-grid-simple-array</a></p>
<p>Reference: <a href="http://www.packtpub.com/learning-ext-js/book" target="_blank">Learning Ext JS &#8211; Book</a></p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=93&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F12%2Fgetting-started-with-extjs-datagrid%2F&amp;linkname=Getting%20Started%20with%20ExtJS%20DataGrid"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7g-DzEDO00U:G_ZocTyshp8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7g-DzEDO00U:G_ZocTyshp8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7g-DzEDO00U:G_ZocTyshp8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=7g-DzEDO00U:G_ZocTyshp8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7g-DzEDO00U:G_ZocTyshp8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=7g-DzEDO00U:G_ZocTyshp8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=7g-DzEDO00U:G_ZocTyshp8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/7g-DzEDO00U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/12/getting-started-with-extjs-datagrid/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/12/getting-started-with-extjs-datagrid/</feedburner:origLink></item>
		<item>
		<title>Sun Tech Days Brazil Presentations</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/fgZcTmFqFRo/</link>
		<comments>http://loianegroner.com/2009/12/sun-tech-days-brazil-presentations/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 16:14:46 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[SUN]]></category>
		<category><![CDATA[Sun Tech Days]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=102</guid>
		<description><![CDATA[
If you missed Sun Tech Days Brazil 2009 (December 8-9 &#8211; Sao Paulo), because of the rain (just like me: pt-br) or because any other reason, don&#8217;t worry about it!
Sun published the presentations (pdf format). It is still missing two presentations:

Keynotes
Sun Microsystems Country Manager Introduction
Sun Keynote: Be Agile: GlassFish, Java and MySQL &#8211; Karen Tegan [...]]]></description>
			<content:encoded><![CDATA[
<p>If you missed Sun Tech Days Brazil 2009 (December 8-9 &#8211; Sao Paulo), because of the rain (<a href="http://www.loiane.com/2009/12/minha-aventura-sun-tech-days-2009/" target="_blank">just like me</a>: pt-br) or because any other reason, don&#8217;t worry about it!</p>
<p>Sun <a href="http://developers.sun.com/events/techdays/presentations/2009/saopaulo.jsp" target="_blank">published the presentations</a> (pdf format). It is still missing two presentations:</p>
<ul class="icons">
<h3><span style="color: #800000;">Keynotes</span></h3>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_CountryManager_Maluf.pdf">Sun Microsystems Country Manager Introduction</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Day2Keynote_Padir.pdf">Sun Keynote: Be Agile: GlassFish, Java and MySQL &#8211; Karen Tegan Padir</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OracleKeynote_Humphrey.pdf">Oracle Keynote: Java, The Platform for the Future &#8211; Pieter Humphrey</a></li>
</ul>
<ul class="icons">
<h3><span style="color: #800000;">Enterprise Computing</span></h3>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JPA_Waite.pdf">Advanced JPA: Concurrency, Cashing and Performance</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Comet_Waite.pdf">Comet Everywhere: Building Truly Asynchronous Collaborative Web Applications</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OSGF_Karlsson.pdf">Deploying the GlassFish Application Server on OpenSolaris: Monitoring, Provisioning and Backups</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_REST_Waite.pdf">Designing and Implementing Secure RESTful Web Services</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_GlassFish_Shin.pdf">GlassFish v3: The Next Generation Application Server</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Intel_Saraiva.pdf">Intel Technical Session: Solaris &amp; Java nos processadores Intel</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaEE6Part1and2_Shin.pdf">JavaEE 6 Part 1: Themes, Managed Bean, Servlet 3.0, JPA 2.0</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaEE6Part1and2_Shin.pdf">JavaEE 6 Part 2: EJB 3.1, JSF 2.0, Bean Validation 1.0, JAX-RS 1.1</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_MySQL_Karlsson.pdf">MySQL: The World&#8217;s Most Popular Open Source Database</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OpenESB_Shin.pdf">OpenESB: Connecting the Enterprise</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OracleTS_Trent.pdf">Oracle Technical Session: Oracle WebLogic Server Architecture, OSGi, and Java Enterprise Edition</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OpenSSO_Shin.pdf">Simplify Your Single-Sign-On With OpenSSO</a></li>
</ul>
<ul class="icons">
<h3><span style="color: #800000;">Client Technologies</span></h3>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_AdvJavaFX_Ritter.pdf">Advanced JavaFX: Tips and Techniques</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_DtraceBtrace_Ritter.pdf">Debugging Java Applications with DTrace and BTrace</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Localhost_Leonard.pdf">Developing Beyond Localhost</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Ginga_Oliveria_Shabat.pdf">Ginga, LUWIT, JavaDTV and You</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaTroubleshooting_Waite.pdf">Java Troubleshooting Tips</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaFXMobile_Caicedo.pdf">JavaFX Programming for Mobile Devices</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JavaFXQuick_Caicedo.pdf">JavaFX: Quick and Easy Rich Internet Applications</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_LWUIT_Caicedo.pdf">JavaME: Building Cool Interfaces with the Lightweight UI Toolkit</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_JDK7_Ritter.pdf">JDK7: The Future of The Java Platform</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Locaweb_Kung.pdf">Locaweb Technical Session: Cloud Computing. E eu com isso?</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_PerfTuning_Ritter.pdf">Performance Tuning Garbage Collection</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Scripting_Ritter.pdf">Scripting Languages: Options for the JVM</a></li>
</ul>
<ul class="icons">
<h3><span style="color: #800000;">OpenSolaris</span></h3>
<li class="pdficon">Application Consolidation with OpenSolaris Containers (coming soon)</li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_PowerUser_Solter.pdf">Becoming an OpenSolaris Power User</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_SunStudio_Kretsch.pdf">Building High Quality C/C++ Applications</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_HA_Solter.pdf">High Availability with OpenSolaris</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Multicore_Kretch.pdf">Mastering Your Multicore System</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_MaxAppPerf_Solter.pdf">Maximizing Application Performance</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_MovingtoOS_Leonard.pdf">Moving to OpenSolaris</a></li>
<li class="pdficon">Open Networking (coming soon)</li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_SourceJuicer_Vanoni.pdf">Porting Applications with the OpenSolaris SourceJuicer</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OSSecurity_Karlsson.pdf">Securing Networked Services with OpenSolaris Security Features</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_Virt_Pronk.pdf">Virtualizing Your Application: Which Option is Right for You</a></li>
<li class="pdficon"><a href="http://developers.sun.com/events/techdays/presentations/2009/pdfs/TD_SP_OSNewAndCool_Armes.pdf">What&#8217;s New and Cool</a></li>
</ul>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=102&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F12%2Fsun-tech-days-brazil-presentations%2F&amp;linkname=Sun%20Tech%20Days%20Brazil%20Presentations"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=fgZcTmFqFRo:sZ7PFlpBk_0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=fgZcTmFqFRo:sZ7PFlpBk_0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=fgZcTmFqFRo:sZ7PFlpBk_0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=fgZcTmFqFRo:sZ7PFlpBk_0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=fgZcTmFqFRo:sZ7PFlpBk_0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=fgZcTmFqFRo:sZ7PFlpBk_0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=fgZcTmFqFRo:sZ7PFlpBk_0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/fgZcTmFqFRo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/12/sun-tech-days-brazil-presentations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/12/sun-tech-days-brazil-presentations/</feedburner:origLink></item>
		<item>
		<title>Getting Started with JSON</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/Nq3FzF6PDRU/</link>
		<comments>http://loianegroner.com/2009/12/getting-started-with-json/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 10:00:45 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[JSON]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=66</guid>
		<description><![CDATA[
This post will walk through JSON basic concepts.

What is JSON?
JSON (JavaScript Object Notation) is a lightweight data-interchange   format, widely hailed as the successor to XML in the browser.
It is easy for humans to read and write.
It is easy for machines to parse and generate.
It is based on a subset of the JavaScript Programming [...]]]></description>
			<content:encoded><![CDATA[
<p>This post will walk through JSON basic concepts.</p>
<p><img class="aligncenter size-full wp-image-90" title="json_loiane" src="http://loianegroner.com/wp-content/uploads/2009/12/json_loiane.jpg" alt="json_loiane" width="290" height="225" /></p>
<h3><span style="color: #800000;"><strong>What is JSON?</strong></span></h3>
<p><a href="http://www.json.org/" target="_blank"><strong>JSON</strong> (JavaScript Object Notation) </a>is a lightweight data-interchange   format, widely hailed as the successor to XML in the browser.</p>
<p>It is easy for humans to read and write.</p>
<p>It is easy for machines to parse and generate.</p>
<p>It is based on a subset of the JavaScript Programming Language.</p>
<p>It is lighter than XML.</p>
<h3><span style="color: #800000;"><strong>JSON versus XML</strong></span></h3>
<p><span style="color: #800000;"><span style="color: #000000;">Ps.: This is </span></span>only from the javascript eval() point of view<span style="color: #800000;"><strong><span style="color: #000000;">.</span><br />
</strong></span></p>
<table border="1">
<tbody>
<tr>
<td style="font-weight: bold; text-align: center;">JSON</td>
<td style="font-weight: bold; text-align: center;">XML</td>
</tr>
<tr>
<td>JSON object are type</td>
<td>XML data is typeless</td>
</tr>
<tr>
<td>JSON types: string, number, array, boolean</td>
<td>XML data are all string</td>
</tr>
<tr>
<td>Data is readily accessible as JSON objects</td>
<td>XML data needs to be parsed</td>
</tr>
<tr>
<td>Retrieving value is easy</td>
<td>Retrieving value is difficult</td>
</tr>
<tr>
<td>JSON is supported by all browsers</td>
<td>Cross browser XML parsing can be tricky</td>
</tr>
<tr>
<td>Simple API</td>
<td>Complex API</td>
</tr>
<tr>
<td>Supported by many Ajax toolkit</td>
<td>Not fully supported by Ajax toolkit</td>
</tr>
<tr>
<td>Fast object de-serialization in JavaScript</td>
<td>Slower de-serialization in Javascript</td>
</tr>
<tr>
<td>Fully automated way of de-serializing/serializing JavaScript objects</td>
<td>Developers have to write javascript code to serialize/se-serialize to/from XML</td>
</tr>
</tbody>
</table>
<h3><span style="color: #800000;">JSON Values</span></h3>
<p>JSON is built on two structures:</p>
<ul>
<li>A collection of name/value pairs. In various languages, this is realized     as an <em>object</em>, record, struct, dictionary, hash table, keyed list, or     associative array.</li>
<li>An ordered list of values. In most languages, this is realized as an <em>array</em>,     vector, list, or sequence.</li>
</ul>
<p>An <em>object</em> is an unordered set of name/value pairs. An object   begins with <tt>{</tt> <small>(left brace)</small> and ends   with <tt>}</tt> <small>(right brace)</small>. Each name is followed   by <tt>:</tt> <small>(colon)</small> and the name/value pairs are   separated by <tt>,</tt> <small>(comma)</small>.</p>
<p style="text-align: justify;"><a href="http://www.json.org/object.gif"><img class="aligncenter" title="JSON Object" src="http://www.json.org/object.gif" alt="" width="598" height="113" /></a>An <em>array</em> is an ordered collection of values. An array begins   with <tt>[</tt> <small>(left bracket)</small> and ends   with <tt>]</tt> <small>(right bracket)</small>. Values are separated   by <tt>,</tt> <small>(comma)</small>.</p>
<p style="text-align: justify;"><a href="http://www.json.org/array.gif"><img class="aligncenter" title="JSON Array" src="http://www.json.org/array.gif" alt="" width="598" height="113" /></a>A <em>value</em> can be a <em>string</em> in double quotes, or a <em>number</em>,   or <tt>true</tt> or <tt>false</tt> or <tt>null</tt>, or an <em>object</em> or   an <em>array</em>. These structures can be nested.</p>
<p style="text-align: justify;"><img class="aligncenter" title="Json value" src="http://www.json.org/value.gif" alt="" width="598" height="278" /></p>
<p style="text-align: justify;">A <em>string</em> is a collection of zero or more Unicode characters, wrapped   in double quotes, using backslash escapes. A character is represented as a   single character string. A string is very much like a C or Java string.</p>
<p style="text-align: justify;"><a href="http://www.json.org/string.gif"><img class="aligncenter" title="Json string" src="http://www.json.org/string.gif" alt="" width="598" height="413" /></a></p>
<p style="text-align: justify;">A <em>number</em> is very much like a C or Java number, except that the octal   and hexadecimal formats are not used.</p>
<p style="text-align: justify;"><a href="http://www.json.org/number.gif"><img class="aligncenter" title="JSON number" src="http://www.json.org/number.gif" alt="" width="598" height="266" /></a></p>
<h3><span style="color: #800000;"><strong>JSON Syntax</strong></span></h3>
<ul>
<li>For objects start the object with “{“ and end it with “}”</li>
<li>For members (properties), use pairs of string : value and separate them by commas</li>
<li>For arrays put the arrays between []</li>
<li>For elements put the values directly separated by commas</li>
</ul>
<p>Example:</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
var myFirstJSON = { &quot;firstName&quot; : &quot;Loiane&quot;,
                    &quot;lastName&quot;  : &quot;Groner&quot;,
                    &quot;age&quot;       : 23 };

document.writeln(myFirstJSON.firstName);  // Outputs Loiane
document.writeln(myFirstJSON.lastName);   // Outputs Groner
document.writeln(myFirstJSON.age);        // Outputs 23
&lt;/script&gt;
</pre>
<p>This object has 3 properties or name/value pairs. The firstName and lastName are strings and age is a number.</p>
<p>The value can be any Javascript object (and remember everything in Javascript is an object so the value can be a string, number, array, function, even other Objects).</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
var hobbies = { &quot;tvseries&quot; :
			[ //array
				{&quot;name&quot;: &quot;Lost&quot;, &quot;seasons&quot;:5 },
				{&quot;name&quot;: &quot;Heroes&quot;, &quot;seasons&quot;:4 },
				{&quot;name&quot;: &quot;Fringe&quot;, &quot;seasons&quot;:2 },
				{&quot;name&quot;: &quot;The Office&quot;, &quot;seasons&quot;:5 },
				{&quot;name&quot;: &quot;The Big Bang Theory&quot;, &quot;seasons&quot;:3 },
				{&quot;name&quot;: &quot;True Blood&quot;, &quot;seasons&quot;:2 },
				{&quot;name&quot;: &quot;Battlestar Galactica&quot;, &quot;seasons&quot;:4 },
				{&quot;name&quot;: &quot;Sex and the City&quot;, &quot;seasons&quot;:6 },
				{&quot;name&quot;: &quot;Friends&quot;, &quot;seasons&quot;:10 }
			]
			&quot;games&quot; :
				[
				&quot;Counter Strike&quot; ,&quot;Sacred 2&quot;,&quot;The Sims 3&quot;,&quot;Guitar Hero&quot;
				]

      		};

document.writeln(hobbies.tvseries[0].name); // Outputs Lost
document.writeln(hobbies.games[3]); 	   // Outputs Guitar Hero
&lt;/script&gt;
</pre>
<p><em>hobbies</em> is an object.  That object has two properties or name/value pair (<em>tvseries</em> and <em>games</em>).</p>
<p><em>tvseries</em> is an array which holds two JSON objects showing the names and seasons of 9 TV Series.  Likewise games is also an array which holds four JSON objects showing the names of games I like.</p>
<p>Well, this is just a start. You can study JSON functions and how to convert JSON objects now. You can also study Ajax toolkits taht support JSON.</p>
<p>Happy coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=66&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F12%2Fgetting-started-with-json%2F&amp;linkname=Getting%20Started%20with%20JSON"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Nq3FzF6PDRU:MhKW_5Pnwzg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Nq3FzF6PDRU:MhKW_5Pnwzg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Nq3FzF6PDRU:MhKW_5Pnwzg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=Nq3FzF6PDRU:MhKW_5Pnwzg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Nq3FzF6PDRU:MhKW_5Pnwzg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=Nq3FzF6PDRU:MhKW_5Pnwzg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=Nq3FzF6PDRU:MhKW_5Pnwzg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/Nq3FzF6PDRU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/12/getting-started-with-json/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/12/getting-started-with-json/</feedburner:origLink></item>
		<item>
		<title>Significant Sun S/W releases today: NetBeans 6.8 + Java EE 6 + GlassFish Enterprise Server V3</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/VgW1kN48Ovs/</link>
		<comments>http://loianegroner.com/2009/12/significant-sun-sw-releases-today-netbeans-6-8-java-ee-6-glassfish-enterprise-server-v3/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 17:56:53 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[SUN]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[NetBeans]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=61</guid>
		<description><![CDATA[
Sun released a couple of significant software releases today&#8230;Folks have been working hard to get these release(s) out. So, today, Sun and the NetBeans(TM) community are announcing the availability of the NetBeans Integrated Development Environment (IDE) 6.8 &#8212; in conjunction with the availability of Java(TM) Platform Enterprise Edition 6 (Java EE 6) and Sun GlassFish(TM) [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;">Sun released a couple of significant software releases today&#8230;Folks have been working hard to get these release(s) out. So, today, Sun and the NetBeans(TM) community are <strong>announcing the availability of the NetBeans Integrated Development Environment (IDE) 6.8 &#8212; in conjunction with the availability of Java(TM) Platform Enterprise Edition 6 (Java EE 6) and Sun GlassFish(TM) Enterprise Server v3.</strong> &#8230;.and there&#8217;s a bit <strong>more to this.  The Software team is holding a virtual event for folks who want to <span style="text-decoration: underline;">learn more</span>: </strong></p>
<p style="text-align: justify;">
An <strong><span style="color: #006600;">on-line Virtual Conference will be held on December 15th</span></strong>.  Registration is at <a href="https://dct.sun.com/dct/forms/reg_us_2011_956_0.jsp" target="_blank">https://dct.sun.com/dct/forms/reg_us_2011_956_0.jsp</a>.</p>
<p style="text-align: justify;">
<h3 style="text-align: justify;"><strong><span style="text-decoration: underline;">KEY UPDATES TO JAVA EE 6</span><br />
</strong></h3>
<p style="text-align: justify;"><strong>New Developer Productivity Features:</strong> Java EE 6 features simplify Java application development with less XML configuration, more annotations and more POJO-like development.</p>
<p style="text-align: justify;"><strong>Support for New Specifications:</strong> New specifications are available including RESTful Web services, EJB 3.1 and EJB Lite, and Dependency Injection.</p>
<p style="text-align: justify;"><strong>Support for Profiles:</strong> Java EE 6 adds support for defining Profiles that may be a subset or superset of the traditional Java EE 6 full stack that are tailored to specific application scenarios or verticals.  One specific Profile is defined, the Web Profile, intended for the deployment of modern Web applications.</p>
<p style="text-align: justify;">Additional information is available at: <a href="http://netbeans.org/community/releases/68/" target="_blank">http://java.sun.com/javaee</a></p>
<p style="text-align: justify;">
<h3 style="text-align: justify;"><strong><span style="text-decoration: underline;">KEY UPDATES TO GLASSFISH ENTERPRISE SERVER V3</span></strong></h3>
<h3 style="text-align: justify;"><strong> </strong></h3>
<p style="text-align: justify;"><strong>Full Support for Java EE 6:</strong> GlassFish Enterprise Server v3 is the first application server to be compatible with the new Java EE 6 specification.</p>
<p style="text-align: justify;"><strong>New Modular Runtime:</strong> A new modular runtime based on OSGi provides for faster startup and loading only those components required, reducing resource requirements.</p>
<p style="text-align: justify;"><strong>GlassFish Web Profile:</strong> Implementing the new Java EE 6 Web Profile, this provides an lighter weight runtime optimized for modern Web applications.</p>
<p style="text-align: justify;"><strong>Support for Iterative Development:</strong> New features allow developers to use an edit, save, reload approach to development, eliminating the time consuming recompile and redeploy steps.  This is extended by application state being preserved eliminating the need to recreate that state after each change.  NetBeans 6.8 has been released providing full support for Java EE 6 development.</p>
<p style="text-align: justify;">Additional information is available at: <a href="http://netbeans.org/community/releases/68/" target="_blank">http://www.sun.com/glassfishv3</a></p>
<p style="text-align: justify;"><strong><br />
</strong></p>
<h3 style="text-align: justify;"><strong><span style="text-decoration: underline;">KEY UPDATES TO THE NETBEANS 6.8 IDE</span></strong></h3>
<p style="text-align: justify;">
The NetBeans IDE 6.8 is available for download free of charge at <a href="http://www.netbeans.org/" target="_blank">www.netbeans.org</a>.</p>
<p><strong>Complete Java EE 6 Support:</strong> Java EE 6 language features simplify Java application development with less XML configuration, more annotations and more POJO-like development.</p>
<p><strong>GlassFish v3 Support:</strong> Developers can easily target and deploy to GlassFish v3, including the new lightweight GlassFish v3 Web Profile.</p>
<p><strong>JavaFX(TM):</strong> The latest version of the NetBeans editor provides improved code completion, hints and navigation for JavaFX.</p>
<p><strong>PHP Support:</strong> The NetBeans IDE expands its support of dynamic languages with support for PHP 5.3 and the Symfony (open-source PHP) web framework.</p>
<p><strong>Tighter Integration with Project Kenai:</strong> Project Kenai, a collaborative environment for hosting open source projects, now delivers full support for JIRA and improved instant messenger and issue tracker integration. For more information visit <a href="http://www.kenai.com/" target="_blank">www.kenai.com</a>.</p>
<p><strong>C/C++ Profiling:</strong> The new Microstate Accounting indicator and I/O usage monitor help developers profile and tune C/C++ applications.</p>
<p><strong>NetBeans Platform:</strong> As a rock-solid application framework for Swing applications, the platform saves developers a huge amount of time and effort by providing commonly-used facilities such as menu items, toolbar items, keyboard shortcuts, and window management out of the box.</p>
<p><span style="color: #800000;">Additional information is available at</span>:</p>
<p>NetBeans 6.8 IDE -  <a href="http://netbeans.org/community/releases/68/" target="_blank">http://netbeans.org/community/releases/68/</a><br />
Java EE 6 &#8211; <a href="http://java.sun.com/javaee/" target="_blank">http://java.sun.com/javaee/</a><br />
GlassFish v3 &#8211; <a href="http://www.sun.com/glassfishv3" target="_blank">http://www.sun.com/glassfishv3</a></p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=61&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F12%2Fsignificant-sun-sw-releases-today-netbeans-6-8-java-ee-6-glassfish-enterprise-server-v3%2F&amp;linkname=Significant%20Sun%20S%2FW%20releases%20today%3A%20NetBeans%206.8%20%2B%20Java%20EE%206%20%2B%20GlassFish%20Enterprise%20Server%20V3"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=VgW1kN48Ovs:CEim8zqaisg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=VgW1kN48Ovs:CEim8zqaisg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=VgW1kN48Ovs:CEim8zqaisg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=VgW1kN48Ovs:CEim8zqaisg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=VgW1kN48Ovs:CEim8zqaisg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=VgW1kN48Ovs:CEim8zqaisg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=VgW1kN48Ovs:CEim8zqaisg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/VgW1kN48Ovs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/12/significant-sun-sw-releases-today-netbeans-6-8-java-ee-6-glassfish-enterprise-server-v3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/12/significant-sun-sw-releases-today-netbeans-6-8-java-ee-6-glassfish-enterprise-server-v3/</feedburner:origLink></item>
		<item>
		<title>Getting started with ExtJS in your J2EE project</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/wHbVwWLLnGk/</link>
		<comments>http://loianegroner.com/2009/12/getting-started-with-extjs-in-your-j2ee-project/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 10:00:33 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[ExtJS + J2EE]]></category>
		<category><![CDATA[Hello World ExtJS]]></category>
		<category><![CDATA[J2EE]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=48</guid>
		<description><![CDATA[
This tutorial will walk through how to get an Ext JS installation up and running quickly in your java (J2EE) project.
Level: Basic
This is the screenshot of this tutorial:

First, if you haven&#8217;t downloaded ExtJS already, do it: http://extjs.com/products/extjs/download.php (most current release).
PS.: I&#8217;m using Eclipse IDE.
1 - After download the ExtJS library, let&#8217;s create a Dynamic Web [...]]]></description>
			<content:encoded><![CDATA[
<p>This tutorial will walk through how to get an <a href="http://www.extjs.com" target="_blank">Ext JS</a> installation up and running quickly in your java (J2EE) project.</p>
<p>Level: <strong>Basic</strong></p>
<p>This is the screenshot of this tutorial:</p>
<p><img class="aligncenter size-full wp-image-51" title="getting_started_extjs_java_01" src="http://loianegroner.com/wp-content/uploads/2009/11/getting_started_extjs_java_01.jpg" alt="getting_started_extjs_java_01" width="501" height="253" /></p>
<p>First, if you haven&#8217;t downloaded ExtJS already, do it: <a title="http://extjs.com/products/extjs/download.php" rel="nofollow" href="http://extjs.com/products/extjs/download.php">http://extjs.com/products/extjs/download.php</a> (most current release).</p>
<p>PS.: I&#8217;m using <a href="http://eclipse.org/" target="_blank">Eclipse IDE</a>.</p>
<p><strong>1 -</strong> After download the ExtJS library, let&#8217;s create a Dynamic Web Project.</p>
<p><strong>2 </strong>- Under WebContent folder, create a folder where all ExtJS files will be located (I named it ext-3.0.3). Paste adapter and resources folders under your extjs folder. Also, paste this file:  <em>ext-all.js </em>under<em> ext-3.0.3</em>:</p>
<p><img class="aligncenter size-full wp-image-54" title="getting_started_extjs_java_02" src="http://loianegroner.com/wp-content/uploads/2009/11/getting_started_extjs_java_02.jpg" alt="getting_started_extjs_java_02" width="243" height="292" /></p>
<p><strong>3 -</strong> Let&#8217;s create a html page. You can use this page as a template and adjust it to your needs:</p>
<pre class="brush: xml; toolbar: true;">
&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=ISO-8859-1&quot;
    pageEncoding=&quot;ISO-8859-1&quot;%&gt;
&lt;html&gt;
&lt;head&gt;

	&lt;!-- Ext relies on its default css so include it here. --&gt;
  	&lt;!-- This must come BEFORE javascript includes! --&gt;
	&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/extjs-helloworld/ext-3.0.3/resources/css/ext-all.css&quot; /&gt;

	&lt;!-- Include here your own css files if you have them. --&gt;

	&lt;!-- First of javascript includes must be an adapter... --&gt;
	&lt;script src=&quot;/extjs-helloworld/ext-3.0.3/adapter/ext/ext-base.js&quot;&gt;&lt;/script&gt;

	&lt;!-- ...then you need the Ext itself, either debug or production version. --&gt;
	&lt;script src=&quot;/extjs-helloworld/ext-3.0.3/ext-all.js&quot;&gt;&lt;/script&gt;

	&lt;!-- Include here your extended classes if you have some. --&gt;

  	&lt;!-- Include here you application javascript file if you have it. --&gt;

	&lt;title&gt;Getting Started with Extjs&lt;/title&gt;

	&lt;!-- You can have onReady function here or in your application file. --&gt;
  	&lt;!-- If you have it in your application file delete the whole --&gt;
  	&lt;!-- following script tag as we must have only one onReady. --&gt;

	&lt;script type=&quot;text/javascript&quot;&gt;

	// Path to the blank image must point to a valid location on your server
	Ext.BLANK_IMAGE_URL = '/extjs-helloworld/ext-3.0.3/resources/images/default/s.gif';

	&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>4 -</strong> Now, let&#8217;s put a Hello World code to make sure everything is ok:</p>
<pre class="brush: jscript; toolbar: true;">
	Ext.onReady(function(){
		Ext.Msg.alert('Test Extjs', 'Hello World');
	});
</pre>
<p>You can download the source code in my Github: <a href="http://github.com/loiane/extjs-helloworld" target="_blank"><img class="alignnone size-full wp-image-1238" title="public" src="http://www.loiane.com/wp-content/uploads/2009/11/public.png" alt="public" width="16" height="16" /> http://github.com/loiane/extjs-helloworld</a></p>
<p>Reference: <a href="http://www.extjs.com" target="_blank">Ext Js Communit</a>y</p>
<p>Happy Coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=48&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F12%2Fgetting-started-with-extjs-in-your-j2ee-project%2F&amp;linkname=Getting%20started%20with%20ExtJS%20in%20your%20J2EE%20project"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=wHbVwWLLnGk:ies2TWD2RJY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=wHbVwWLLnGk:ies2TWD2RJY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=wHbVwWLLnGk:ies2TWD2RJY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=wHbVwWLLnGk:ies2TWD2RJY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=wHbVwWLLnGk:ies2TWD2RJY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=wHbVwWLLnGk:ies2TWD2RJY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=wHbVwWLLnGk:ies2TWD2RJY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/wHbVwWLLnGk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/12/getting-started-with-extjs-in-your-j2ee-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/12/getting-started-with-extjs-in-your-j2ee-project/</feedburner:origLink></item>
		<item>
		<title>Ext JS: Which events are fired by a component?</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/AlVSr3JBbLI/</link>
		<comments>http://loianegroner.com/2009/11/ext-js-which-events-are-fired-by-a-component/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 09:00:21 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[events ExtJS]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=42</guid>
		<description><![CDATA[
Quick Tip:
Sometimes, we need to know all events that are fired by an Ext JS component.
It is easy to find out, just use the following code in Firebug:
Ext.util.Observable.capture(Ext.getCmp('id_my_grid'), console.info);
For example: let&#8217;s say that the component you want to analyze has id &#8220;id_my_grid&#8221;. Load the page with the component (project) using Firefox, open Firebug, Console tab [...]]]></description>
			<content:encoded><![CDATA[
<h3><a href="http://www.loiane.com/wp-content/uploads/2009/10/mb_extjs_splash.jpg" target="_blank"><img class="aligncenter" title="extjs eventes fired" src="http://www.loiane.com/wp-content/uploads/2009/10/mb_extjs_splash.jpg" alt="" width="162" height="102" /></a><strong>Quick Tip:</strong></h3>
<p>Sometimes, we need to know all events that are fired by an Ext JS component.</p>
<p>It is easy to find out, just use the following code in Firebug:</p>
<pre class="brush: jscript; toolbar: true;">Ext.util.Observable.capture(Ext.getCmp('id_my_grid'), console.info);</pre>
<p>For example: let&#8217;s say that the component you want to analyze has id &#8220;id_my_grid&#8221;. Load the page with the component (project) using Firefox, open Firebug, Console tab and use the code above.</p>
<p>Now do some actions with the component and watch the Firebug output.</p>
<p>Happy coding and debuging!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=42&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F11%2Fext-js-which-events-are-fired-by-a-component%2F&amp;linkname=Ext%20JS%3A%20Which%20events%20are%20fired%20by%20a%20component%3F"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=AlVSr3JBbLI:x1n01jv1uE0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=AlVSr3JBbLI:x1n01jv1uE0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=AlVSr3JBbLI:x1n01jv1uE0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=AlVSr3JBbLI:x1n01jv1uE0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=AlVSr3JBbLI:x1n01jv1uE0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=AlVSr3JBbLI:x1n01jv1uE0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=AlVSr3JBbLI:x1n01jv1uE0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/AlVSr3JBbLI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/11/ext-js-which-events-are-fired-by-a-component/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/11/ext-js-which-events-are-fired-by-a-component/</feedburner:origLink></item>
		<item>
		<title>Tutorial: Using the EGit Eclipse Plugin with GitHub</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/rUSerurWlt8/</link>
		<comments>http://loianegroner.com/2009/11/tutorial-using-the-egit-eclipse-plugin-with-github/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 09:00:22 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Auth Fail Egit]]></category>
		<category><![CDATA[Egit]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=28</guid>
		<description><![CDATA[

I started to use GitHub a couple of months ago.
I found this Elipse plugin – EGit - and it did made my life so much easier (download projects from GitHub and upload projects &#8211; with may files &#8211; to GitHub). So I decided to write this tutorial, because I did not find any step by [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: center;"><a href="http://www.loiane.com/wp-content/uploads/2009/10/octocat_happy.gif" target="_blank"><img class=" aligncenter" title="github" src="http://www.loiane.com/wp-content/uploads/2009/10/octocat_happy.gif" alt="github, tutorial egit github, egit, git" width="264" height="201" /></a></p>
<p>I started to use <a href="http://github.com/" target="_blank">GitHub </a>a couple of months ago.</p>
<p><span style="line-height: 23px;">I found this Elipse plugin – <a style="color: #708226; text-decoration: none; padding: 0px; margin: 0px;" href="http://code.google.com/p/egit/" target="_blank">EGit </a>- and it did made my life so much easier (download projects from GitHub and upload projects &#8211; with may files &#8211; to GitHub). So I decided to write this tutorial, because I did not find any step by step Egit tutorial on the Internet</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.8em; padding: 0px;">What this tutorial covers:</p>
<ul>
<li><span style="line-height: 19px; ">Installing EGit</span></li>
<li><span style="line-height: 19px; ">Importing an existing Eclipse project from Github</span></li>
<li>Uploading your Eclipse project to Github</li>
<li>Git operations from inside Eclipse</li>
</ul>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.8em; padding: 0px;">Enjoy it and Happy coding!</p>
<p style="text-align: center;"><object width="550" height="451"><param name="movie" value="http://static.slideshare.net/swf/ssplayerd.swf?doc=usingtheegiteclipsepluginwithgithub-091124185958-phpapp01"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayerd.swf?doc=usingtheegiteclipsepluginwithgithub-091124185958-phpapp01"  type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="550" height="451"></embed></object><!-- ysttest:Array
(
    [id] => 2578587&amp;doc=usingtheegiteclipsepluginwithgithub-091124185958-phpapp01&amp;type=d&amp;w=550
)
--></p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=28&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F11%2Ftutorial-using-the-egit-eclipse-plugin-with-github%2F&amp;linkname=Tutorial%3A%20Using%20the%20EGit%20Eclipse%20Plugin%20with%20GitHub"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=rUSerurWlt8:NkXjeBNsNMw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=rUSerurWlt8:NkXjeBNsNMw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=rUSerurWlt8:NkXjeBNsNMw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=rUSerurWlt8:NkXjeBNsNMw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=rUSerurWlt8:NkXjeBNsNMw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=rUSerurWlt8:NkXjeBNsNMw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=rUSerurWlt8:NkXjeBNsNMw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/rUSerurWlt8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/11/tutorial-using-the-egit-eclipse-plugin-with-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/11/tutorial-using-the-egit-eclipse-plugin-with-github/</feedburner:origLink></item>
		<item>
		<title>New to UNIX?</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/iDyLVpYzgsA/</link>
		<comments>http://loianegroner.com/2009/11/new-to-unix/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 11:40:37 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[developerWorks]]></category>
		<category><![CDATA[AIX]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://loianegroner.com/?p=23</guid>
		<description><![CDATA[
New to UNIX? Learn UNIX and improve the skill you have with these UNIX resources.
The AIX® and UNIX® zone of developerWorks contains articles, tutorials, and tips to help developers with AIX and UNIX application development and system administration. For users trying to find their way in a new topic, all of that information can be [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;">New to UNIX? Learn UNIX and improve the skill you have with these UNIX resources.</p>
<p style="text-align: justify;">The <a href="http://www.ibm.com/developerworks/aix/" target="_blank">AIX® and UNIX® zone of developerWorks</a> contains articles, tutorials, and tips to help developers with AIX and UNIX application development and system administration. For users trying to find their way in a new topic, all of that information can be overwhelming. <a href="http://www.ibm.com/developerworks/aix/newto/?ca=dgr-twtrNewUNIXdth-A&amp;S_TACT=105AGY83&amp;S_CMP=TWDW" target="_blank">This page</a> provides an overview for readers who would like to learn about AIX and UNIX, but don&#8217;t know where to start.</p>
<p style="text-align: justify;">More resources:</p>
<p style="text-align: justify;"><a href="http://www.ibm.com/developerworks/aix/newto/?ca=dgr-twtrNewUNIXdth-A&amp;S_TACT=105AGY83&amp;S_CMP=TWDW" target="_blank">UNIX tips: Learn 10 good UNIX usage habits</a><br />
<a href="http://www.ibm.com/developerworks/views/aix/downloads.jsp" target="_blank"> UNIX Downloads</a></p>
<p style="text-align: justify;">Happy Studying!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=23&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F11%2Fnew-to-unix%2F&amp;linkname=New%20to%20UNIX%3F"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=iDyLVpYzgsA:S8VWzGPhvIU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=iDyLVpYzgsA:S8VWzGPhvIU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=iDyLVpYzgsA:S8VWzGPhvIU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=iDyLVpYzgsA:S8VWzGPhvIU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=iDyLVpYzgsA:S8VWzGPhvIU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=iDyLVpYzgsA:S8VWzGPhvIU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=iDyLVpYzgsA:S8VWzGPhvIU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/iDyLVpYzgsA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/11/new-to-unix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/11/new-to-unix/</feedburner:origLink></item>
		<item>
		<title>Hello World!</title>
		<link>http://feedproxy.google.com/~r/LoianeGroner/~3/cb3xFKEbkEs/</link>
		<comments>http://loianegroner.com/2009/11/hello-world/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 13:30:07 +0000</pubDate>
		<dc:creator>Loiane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[English blog]]></category>
		<category><![CDATA[Hello World]]></category>

		<guid isPermaLink="false">http://loiane.com/en/?p=3</guid>
		<description><![CDATA[
After almost a year writing in my blog in Portuguese, I decided to start a new one in English.
I&#8217;m going to start translating some of my posts, and maybe I can write some exclusive ones in the future.
I&#8217;m not fluent in English, but I&#8217;ll give my best. Feel free to give me some tips to [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: justify;">After almost a year writing in my blog in Portuguese, I decided to start a new one in English.</p>
<p style="text-align: justify;">I&#8217;m going to start translating some of my posts, and maybe I can write some exclusive ones in the future.</p>
<p style="text-align: justify;">I&#8217;m not fluent in English, but I&#8217;ll give my best. Feel free to give me some tips to improve my proficiency in English. I will appreciate it.</p>
<p style="text-align: justify;">This blog it&#8217;s an excuse for me to study and learn more about technologies and the English language. It is kind a log of everything I study (personal and work stuff).</p>
<p style="text-align: justify;">Here, you will find some Java and related technologies tutorials, including some javascript libraries tutorials, such as Ext JS and JQuery, and other stuff.</p>
<p style="text-align: justify;">Well, good luck for me and happy coding!</p>

<img src="http://loianegroner.com/?ak_action=api_record_view&id=3&type=feed" alt="" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Floianegroner.com%2F2009%2F11%2Fhello-world%2F&amp;linkname=Hello%20World%21"><img src="http://loianegroner.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=cb3xFKEbkEs:5vpWv5n5C2E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=cb3xFKEbkEs:5vpWv5n5C2E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=cb3xFKEbkEs:5vpWv5n5C2E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=cb3xFKEbkEs:5vpWv5n5C2E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=cb3xFKEbkEs:5vpWv5n5C2E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LoianeGroner?a=cb3xFKEbkEs:5vpWv5n5C2E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LoianeGroner?i=cb3xFKEbkEs:5vpWv5n5C2E:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LoianeGroner/~4/cb3xFKEbkEs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://loianegroner.com/2009/11/hello-world/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://loianegroner.com/2009/11/hello-world/</feedburner:origLink></item>
	</channel>
</rss>
