<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>OcpSoft &#187; PrettyFaces</title> <atom:link href="http://ocpsoft.com/cat/prettyfaces/feed/" rel="self" type="application/rss+xml" /><link>http://ocpsoft.com</link> <description>&#34;Simple Software&#34;</description> <lastBuildDate>Tue, 27 Jul 2010 15:07:50 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0</generator> <item><title>Logo-Contest: PrettyFaces needs a &#8220;face&#8221; for the future</title><link>http://ocpsoft.com/prettyfaces/logo-contest-prettyfaces-needs-a-face-for-the-future/</link> <comments>http://ocpsoft.com/prettyfaces/logo-contest-prettyfaces-needs-a-face-for-the-future/#comments</comments> <pubDate>Mon, 26 Jul 2010 23:12:25 +0000</pubDate> <dc:creator>admin</dc:creator> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=1462</guid> <description><![CDATA[Welcome graphic artists! The PrettyFaces project needs a logo, and to facilitate this, we&#8217;re hosting a logo contest! Prizes: We know that your time is valuable, but because this is a completely open-source and unfunded project, we can&#8217;t offer a cash reward; however, will receive a T-shirt with your logo on it, a blog entry [...]]]></description> <content:encoded><![CDATA[<div
class="featured"><table><tbody><tr><td><div
class="inside"><a
href="http://ocpsoft.com/wp-content/uploads/2010/07/question-mark.png"><img
class="alignnone size-full wp-image-1463" title="question-mark" src="http://ocpsoft.com/wp-content/uploads/2010/07/question-mark.png" alt="" width="128" height="128" /></a></div></td><td
style="padding-left: 15px;"><strong>Welcome graphic artists!</strong> The <a
href="http://ocpsoft.com/prettyfaces/">PrettyFaces</a> project needs a logo, and to facilitate this, we&#8217;re hosting a logo contest!</p><p><strong>Prizes:</strong> We know that your time is valuable, but because this is a completely open-source and unfunded project, we can&#8217;t offer a cash reward; <em>however</em>, will receive a <a
href="http://www.cafepress.com/ocpsoft" target="_blank">T-shirt</a> with your logo on it, a blog entry announcing you as the winner, a prominent spot (with link) on our <a
href="http://ocpsoft.com/prettyfaces/contributors/">contributors</a> page, a spot (with link) on the home-page as a <a
href="http://ocpsoft.com/prettyfaces/#FAQ">FAQ</a> entry, and the satisfaction of knowing that you helped an open-source project!</td></tr></tbody></table></div><h2><span
id="more-1462"></span>Rules and encouragement:</h2><ul><li>High-resolution, transparent-background, SVG or PNG (preferred, at least 1500&#215;1500 px, for T-shirts)</li><li>Should look professional and honor the project namesake.</li><li>Cute eyelashes, and the use of cute animals or figures are both highly encouraged but not required.</li><li>The logo should be cute, friendly, and crisp.</li><li>The use of <a
href="https://services.mozilla.com/images/sync-logo.png" target="_blank">semi-3D perspective</a> is encouraged, Show us something &#8220;Pretty!&#8221;</li><li>Logos should include a round or square-ish component (such as the &#8220;<a
href="http://ocpsoft.com/wp-content/uploads/2010/07/question-mark.png">question-cube</a>&#8221; above, so that it can be iconified,) <a
href="https://services.mozilla.com/images/sync-logo.png" target="_blank">words optional</a> but encouraged.</li></ul><h2>Submissions and voting:</h2><p>Send your entries by via email to: <a
href="mailto:admin@ocpsoft.com">admin@ocpsoft.com</a>. Be sure to include:</p><ul><li> your name</li><li>the entry (as a SVG/PNG attachment) &#8211; submit as many as you please</li><li>your website or company (if you wish to be referenced should your entry be the winner)</li></ul><p>Entries will be screened for any inappropriate graphics or potential trademark problems (we don&#8217;t want to get sued!) Voting will begin in three weeks (<strong>Monday, August 16th</strong>) unless more time is required (within reason.)</p><h2>Fine print</h2><p>By submitting an entry: if you win the contest, you grant us permission to use, redistribute, or modify your image in any way! We have to be able to use it, or what&#8217;s the point of giving you a T-Shirt? <img
src='http://ocpsoft.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/prettyfaces/logo-contest-prettyfaces-needs-a-face-for-the-future/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Annotations support is coming to PrettyFaces: URL-rewriting</title><link>http://ocpsoft.com/prettyfaces/annotations-support-is-coming-to-prettyfaces-url-rewriting/</link> <comments>http://ocpsoft.com/prettyfaces/annotations-support-is-coming-to-prettyfaces-url-rewriting/#comments</comments> <pubDate>Tue, 06 Jul 2010 15:18:56 +0000</pubDate> <dc:creator>chkal</dc:creator> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=1350</guid> <description><![CDATA[The PrettyFaces team is currently working on an alternative way to configure URL mappings. PrettyFaces will soon allow to use annotations instead of the classic XML configuration file to declare mappings. We encourage everyone interested in PrettyFaces to take a look at this new way of configuration and share his or her opinion with us. [...]]]></description> <content:encoded><![CDATA[<p>The PrettyFaces team is currently working on an alternative way to configure URL mappings. PrettyFaces will soon allow to use annotations instead of the classic XML configuration file to declare mappings. We encourage everyone interested in PrettyFaces to take a look at this new way of configuration and share his or her opinion with us.<br
/> <span
id="more-1350"></span></p><h2>Examples</h2><p>This section shows some simple examples for the annotation support of PrettyFaces. For details refer to the <a
href="http://ocpsoft.com/docs/prettyfaces/snapshot/en-US/html_single/#config.annotations">Annotation-based configuration chapter</a> in the current snapshot of the <a
href="http://ocpsoft.com/docs/prettyfaces/snapshot/en-US/html_single/">PrettyFaces Reference Documentation</a> (note, this documentation will be merged into the primary PrettyFaces reference guide once released.)</p><p><strong>Declaring a URL mapping</strong> using annotations is straight forward. Just add a @URLMapping to the class primarily responsible for the page. The annotation requires you to specify the ID of the mapping, the URL pattern and the view to render:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">@URLMapping<span style="color: #009900;">&#40;</span>id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;login&quot;</span>, pattern<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/login&quot;</span>, viewId<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/login.jsf&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> LoginBean <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">/* your code */</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p><strong>Path parameters</strong> can be embedded in the URL pattern as already known from the XML configuration:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">@URLMapping<span style="color: #009900;">&#40;</span>id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;viewStory&quot;</span>, pattern<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/story/#{storyBean.currentStoryId}&quot;</span>, viewId<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/story-view.jsf&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> StoryBean <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Long</span> currentStoryId<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">/* your code */</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>To use <strong>query parameters</strong>, just annotate the target property with a @URLQueryParameter annotation. The query parameter will automatically refer to the mapping declared on the class.</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">@URLMapping<span style="color: #009900;">&#40;</span>id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;viewStory&quot;</span>, pattern<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/story/view&quot;</span>, viewId<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/story-view.jsf&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> StoryBean <span style="color: #009900;">&#123;</span>
&nbsp;
  @URLQueryParameter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;id&quot;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Long</span> currentStoryId<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">/* your code */</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>If you want to use <strong>page actions</strong>, just add a @URLAction annotation to the methods you want to be executed.</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">@URLMapping<span style="color: #009900;">&#40;</span>id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;viewStory&quot;</span>, pattern<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/story&quot;</span>, viewId<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/story.jsf&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> StoryBean <span style="color: #009900;">&#123;</span>
&nbsp;
  @URLQueryParameter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;id&quot;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Long</span> currentStoryId<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> Story story<span style="color: #339933;">;</span>
&nbsp;
  @URLAction
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> loadStory<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// load the story </span>
    story <span style="color: #339933;">=</span> myStoryDao.<span style="color: #006633;">getById</span><span style="color: #009900;">&#40;</span> currentStoryId <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">/* more code */</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div><p>Please note that all annotations accept a wide range of additional options to customize the mapping. As they are very similar to the well known syntax of the classic XML configuration you should quickly get familiar with them.</p><h3>Give it a try</h3><p>Want to take a look at the new annotations support in PrettyFaces? Please do! We are always looking for people helping us testing the new features.</p><p>The current snapshots are regularly deployed to the following Maven repository:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ocpsoft<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>OcpSoft<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://ocpsoft.com/repository/<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/releases<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/snapshots<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/repository<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>Depending on your JSF version, add the PrettyFaces dependency to your <a
href="http://maven.apache.org">Maven</a> pom.xml:</p><h4>For JSF 2.0:</h4><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.ocpsoft<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>prettyfaces-jsf2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>3.0.2-SNAPSHOT<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><h4>For JSF 1.2:</h4><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.ocpsoft<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>prettyfaces-jsf2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>3.0.2-SNAPSHOT<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>PrettyFaces will support annotations out of the box, nevertheless, it is strongly recommended to specify the packages to scan for annotations; just add the following configuration to your <strong>web.xml</strong>:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;context-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.ocpsoft.pretty.BASE_PACKAGES<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.example.myapp<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/context-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>That&#8217;s it! <img
src='http://ocpsoft.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> If you have any feedback or questions, please ask on the <a
href="http://ocpsoft.com/support/">OcpSoft Support Forums</a>, or the <a
href="http://groups.google.com/group/prettyfaces-users">OcpSoft Users Group Mailing List</a>. For more information, visit the <a
href="http://ocpsoft.com/prettyfaces/">PrettyFaces home page</a>. Thanks!</p> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/prettyfaces/annotations-support-is-coming-to-prettyfaces-url-rewriting/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Vote for PrettyFaces at JUDCon, JBoss World, Red Hat Summit!</title><link>http://ocpsoft.com/opensource/vote-for-prettyfaces-at-judcon-jboss-world-red-hat-summit/</link> <comments>http://ocpsoft.com/opensource/vote-for-prettyfaces-at-judcon-jboss-world-red-hat-summit/#comments</comments> <pubDate>Thu, 20 May 2010 20:23:42 +0000</pubDate> <dc:creator>Lincoln</dc:creator> <category><![CDATA[OpenSource]]></category> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=1327</guid> <description><![CDATA[As everyone knows, or should know, one of the best conferences of our time will be taking place in Boston, MA between June 21st and June 25th, 2010. What people might not know, is that PrettyFaces has a chance to present there! All we need is your vote. It&#8217;s called JBoss World, and if you [...]]]></description> <content:encoded><![CDATA[<p>As everyone knows, or should know, one of the <a
title="Best Technology Conference Ever" href="http://www.redhat.com/promo/summit/2010/" target="_blank">best conferences</a> of our time will be taking place in <a
title="Best City Ever" href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=Seaport+Hotel+%26+World+Trade+Center,+Boston&amp;sll=42.358431,-71.059773&amp;sspn=0.308494,0.724411&amp;g=boston,+ma&amp;ie=UTF8&amp;hq=Seaport+Hotel+%26+World+Trade+Center,&amp;hnear=Boston,+MA&amp;ll=42.352138,-71.041803&amp;spn=0.03698,0.090551&amp;z=14&amp;iwloc=A" target="_blank">Boston, MA</a> between June 21st and June 25th, 2010. What people might not know, is that PrettyFaces has a chance to present there! All we need is <em>your vote</em>. It&#8217;s called JBoss World, and if you haven&#8217;t already, you can still <a
href="https://www.eiseverywhere.com/ereg/newreg.php?eventid=9127" target="_blank">purchase</a> passes at a <a
href="https://www.eiseverywhere.com/ereg/newreg.php?eventid=9127" target="_blank">reduced rate</a>.</p><h3>Voting ends Friday May 21st, so act now!</h3><ol><li>You&#8217;ll need to <a
title="Register for an Account on JBoss Community" href="http://www.jboss.org/index.html?op=checkage&amp;module=user" target="_blank">register for an account</a> on <a
title="Register to Vote at JUDCon!" href="http://www.jboss.org/index.html?op=checkage&amp;module=user" target="_blank">JBoss.org</a> (Remember when creating an account that you&#8217;ll need to use a valid email  address for registration confirmation!)</li><li><a
href="https://community.jboss.org/en/judcon" target="_blank">Vote</a> &#8211; for &#8220;<strong>Beautiful Java EE: Use PrettyFaces to Harness SEO,  Improve User Exp, and Ease Dev by Lincoln Baxter</strong>&#8221; &#8211; otherwise known as &#8220;Beautiful Java EE: Next-generation web application for next-generation web users.&#8221;</li><li>If you have problems voting after registration, log out, clear your cookies, log in, then navigate back to the contest and vote.</li></ol><p><center><br
/> <a
href="https://community.jboss.org/en/judcon" target="_blank"><img
class="size-full wp-image-1328 aligncenter" title="Vote for Lincoln &amp; PrettyFaces at JUDCon, 2010" src="http://ocpsoft.com/wp-content/uploads/2010/05/lincoln-prettyfaces.jpg" alt="" width="380" height="303" /></a></p><h3>Do your part: <a
href="https://community.jboss.org/en/judcon" target="_blank">Vote</a>!</h3><p></center></p><p/> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/opensource/vote-for-prettyfaces-at-judcon-jboss-world-red-hat-summit/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Announcing &#8211; PrettyFaces 2.0.4: URL Rewriting for JSF 2.0</title><link>http://ocpsoft.com/opensource/announcing-prettyfaces-2-0-4-url-rewriting-for-javaserver-faces-jsf2/</link> <comments>http://ocpsoft.com/opensource/announcing-prettyfaces-2-0-4-url-rewriting-for-javaserver-faces-jsf2/#comments</comments> <pubDate>Fri, 19 Feb 2010 22:31:15 +0000</pubDate> <dc:creator>Lincoln</dc:creator> <category><![CDATA[OpenSource]]></category> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=1041</guid> <description><![CDATA[We are proud to introduce version the 2.0.4 series of PrettyFaces: Add PrettyFaces to an existing JSF2 application less than 5 minutes: Non-invasive! &#8211; never change your application internals, simply lay PrettyFaces on to an existing application. Zero configuration* in a Servlet 3.0 environment &#8211; PrettyFaces core classes are automatically registered with the servlet container [...]]]></description> <content:encoded><![CDATA[<div
class="featured"><center>We are <strong>proud</strong> to introduce version the 2.0.4 series of <a
href="http://ocpsoft.com/prettyfaces/" title="SEO | Dynamic Parameters | Bookmarks | Navigation | JSF | JSF2 | UrlRewrite">PrettyFaces</a>:</center></div><p><span
id="more-1041"></span></p><h3>Add PrettyFaces to an existing JSF2 application less than 5 minutes:</h3><ul><li><strong>Non-invasive!</strong> &#8211; never change your application internals, simply lay PrettyFaces on to an existing application.</li><li><strong>Zero configuration</strong>* in a Servlet 3.0 environment &#8211; PrettyFaces core classes are automatically registered with the servlet container and JavaServer Faces. (<em>No need to modify web.xml!</em>)</li><li><strong>Rapid development</strong> via automatic configuration reloading (when java.faces.PROJECT_STAGE = Development)</li></ul><ul><li><strong>Custom Inbound/outbound URL rewriting rules</strong> &#8211; with built in support for canonicalization such as appending or removing trailing slashes, lowercasing, custom rewrites, and more.</li><li><strong>Enhanced SEO and Rewriting support</strong> &#8211; including the ability to choose 301, 302, or internal redirects.</li><li><strong>Outbound URL mapping rewriting</strong> &#8211; removes the need for &lt;pretty:link&gt; now &lt;h:link&gt; can be used to generate pretty, SEO-friendly URLs.</li><li><strong>Named pattern / path-parameters</strong> &#8211; for integration with JSF2 <f:viewParam> and non-JSF applications &#8211; not all applications support EL, but they all understand ServletRequest.getParameter(&#8230;)</li></ul><div
class="featured"><center>Read the <a
target="_blank" href="http://ocpsoft.com/wp-content/uploads/2010/02/prettyfaces-2.0.4-reference.pdf">reference guide</a>.<br
/></center></div><h3>Maven Dependency</h3><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.ocpsoft<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ocpsoft-pretty-faces<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2.0.4<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dependency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p><center
class="featured"><object
width="640" height="505"><param
name="movie" value="http://www.youtube.com/v/1kicjmLsN3w&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6"></param><param
name="allowFullScreen" value="true"></param><param
name="allowscriptaccess" value="always"></param><embed
src="http://www.youtube.com/v/1kicjmLsN3w&#038;hl=en_US&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object><br
/><h3>Why not try <a
href="http://ocpsoft.com/prettyfaces/" title="SEO | Dynamic Parameters | Bookmarks | Navigation | JSF | JSF2 | UrlRewrite">PrettyFaces</a> now?.</h3><p></center></p> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/opensource/announcing-prettyfaces-2-0-4-url-rewriting-for-javaserver-faces-jsf2/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>One year&#8217;s time</title><link>http://ocpsoft.com/opensource/one-years-time/</link> <comments>http://ocpsoft.com/opensource/one-years-time/#comments</comments> <pubDate>Thu, 28 Jan 2010 17:53:39 +0000</pubDate> <dc:creator>Derek</dc:creator> <category><![CDATA[JSF]]></category> <category><![CDATA[JSF2]]></category> <category><![CDATA[OCPSoft]]></category> <category><![CDATA[OpenSource]]></category> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=788</guid> <description><![CDATA[It is amazing what can be done in exactly one year&#8217;s time.  January 17th will have been the 2nd anniversary since Lincoln Baxter and I started OcpSoft.  It&#8217;s been one seriously fun, and wild, ride with JavaServer Faces and the open-source community.  I want to take a moment to talk about my partner&#8217;s success story [...]]]></description> <content:encoded><![CDATA[<p>It is amazing what can be done in exactly one year&#8217;s time.  January 17th will have been the 2nd anniversary since Lincoln Baxter and I started OcpSoft.  It&#8217;s been one seriously fun, and wild, ride with <a
href="http://www.javaserverfaces.org">JavaServer Faces</a> and the open-source community.  I want to take a moment to talk about my partner&#8217;s success story and what he has accomplished in just <em>one</em> short year.</p><p><span
id="more-788"></span></p><h3>The Beginning</h3><p>When we started OcpSoft, we were working on what is now <a
title="ScrumShark" href="http://ocpsoft.com/scrumshark/" target="_blank">ScrumShark</a> &#8211; using JSF 1.2 , Hibernate, and many other technologies.  At first it was very overwhelming, challenging to figure out which technologies to use; though, even after we had chosen our technology stack, we fought with poor documentation, lack of support, and integration as we explored new features of the stack.</p><p>During that time Lincoln saw a need for pretty URLs, because what was currently on the market wasn&#8217;t intuitive, and was painful to work with.  The enhancements we requested weren&#8217;t getting approved or were too slow coming, even providing patches.  So Lincoln set out to do it himself, and as he puts it: &#8220;destroyed Thanksgiving 2008.&#8221;</p><h3>PrettyFaces</h3><p>Thanks to <a
href="http://ocpsoft.com/prettyfaces/">PrettyFaces</a>, Lincoln dug-in to JSF and started to really understand the inner workings of both problem and solution; within a few weeks of releasing version one, we were seeing many supporters.  Soon after, Lincoln was contacted by Dan Allen from JBoss/Red Hat, and started assisting him with an enhancement to JSF&#8217;s navigation system.</p><p>During that same time Lincoln convinced us &#8211; at OcpSoft &#8211; to start using JSF 2 Beta to build ScrumShark.  JSF 2 was undergoing continuous changes at that time, and the specification wasn&#8217;t even public, so we were seeing different results in our application every week.  Lincoln started posting the issues on the JSF 2 mailing list, and quickly became known as the JSF 2 tester, bug-finder.  Without <a
title="ScrumShark" href="http://ocpsoft.com/scrumshark/" target="_blank">ScrumShark</a>, and Lincoln willing to take a chance on a bleeding edge technology, I don&#8217;t think the JSF 2 team would have found and fixed all the bugs as fast as they did.  Not too long after this, he joined the JSF Expert Group and was presenting <a
href="http://ocpsoft.com/prettyfaces/jsfsummit-2009-prettyfaces-makes-an-appearance/" target="_blank">PrettyFaces at JSFSummit</a>.</p><h3>Congratulations Lincoln!</h3><p>He just got a job with <a
target="_blank" href="http://jboss.org">JBoss</a> at <a
target="_blank" href="http://www.redhat.com">Red Hat</a>, as a Senior Software Engineer. I am <em>proud </em>of of what my partner and best friend Lincoln has accomplished.</p> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/opensource/one-years-time/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>JSFSummit 2009: PrettyFaces makes an Appearance</title><link>http://ocpsoft.com/prettyfaces/jsfsummit-2009-prettyfaces-makes-an-appearance/</link> <comments>http://ocpsoft.com/prettyfaces/jsfsummit-2009-prettyfaces-makes-an-appearance/#comments</comments> <pubDate>Sat, 19 Dec 2009 17:07:00 +0000</pubDate> <dc:creator>Lincoln</dc:creator> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=500</guid> <description><![CDATA[PrettyFaces went on the road and presented at JSFSummit 2009 (Dec 1st &#8211; 5th, Orlando, FL,) and for those of you who missed it, here are the slides. The presentation wasn&#8217;t recorded, but the slides alone are a good read. If you are interested in JavaServer Faces, Url Rewriting, or SEO and best practices, this [...]]]></description> <content:encoded><![CDATA[<p>PrettyFaces went on the road and presented at <a
href="http://www.jsfsummit.com" target="_blank">JSFSummit 2009</a> (Dec 1st &#8211; 5th, Orlando, FL,) and for those of you who missed it, here are the slides. The presentation wasn&#8217;t recorded, but the slides alone are a good read. If you are interested in JavaServer Faces, Url Rewriting, or SEO and best practices, this presentation is for you!</p><p><span
id="more-500"></span></p><div
class="featured"><center></p><div
style="width:425px;text-align:left" id="__ss_2646869"><a
style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/lincolnthree/prettyfaces-seo-dynamic-parameters-bookmarks-and-navigation-for-jsf-jsf2-urlrewrite" title="PrettyFaces: SEO, Dynamic Parameters, Bookmarks, and Navigation for JSF / JSF2 (UrlRewrite)">PrettyFaces: SEO, Dynamic Parameters, Bookmarks, and Navigation for JSF / JSF2 (UrlRewrite)</a><object
style="margin:0px" width="425" height="355"><param
name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=prettyfacesjsfsummit-091203235948-phpapp01&#038;stripped_title=prettyfaces-seo-dynamic-parameters-bookmarks-and-navigation-for-jsf-jsf2-urlrewrite" /><param
name="allowFullScreen" value="true"/><param
name="allowScriptAccess" value="always"/><embed
src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=prettyfacesjsfsummit-091203235948-phpapp01&#038;stripped_title=prettyfaces-seo-dynamic-parameters-bookmarks-and-navigation-for-jsf-jsf2-urlrewrite" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div
style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a
style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a
style="text-decoration:underline;" href="http://www.slideshare.net/lincolnthree">lincolnthree</a>.</div></div><p></center></div><p>All of the feedback was outstanding, from &#8220;Most interesting presentation,&#8221; to &#8220;Best, most entertaining presentation&#8221; &#8211; and I should sure hope so. There was a little surprise that everyone seemed to enjoy &#8211; read carefully and you&#8217;ll find it. (Hint, it&#8217;s on page 22.)</p><p>Below is a photo taken by one of the attendees &#8211; the only proof that the talk actually happened, aside from <a
href="http://www.jsfsummit.com/conference/orlando/2009/12/speakers/lincoln_baxter_iii" target="_blank">this</a>. In any case, keep your eyes on PrettyFaces for some cool new features in the next releases &#8211; work is still going strong.</p><div
class="featured"><center><br
/> <img
src="http://ocpsoft.com/wp-content/uploads/2009/12/lincolnbaxter-prettyfaces-jsfsummit09-ocpsoft.jpg" alt="Lincoln Baxter presents PrettyFaces at JSFSummit2009" title="Lincoln Baxter presents PrettyFaces at JSFSummit2009" width="510" height="392" class="aligncenter size-full wp-image-508" /></p><p>Lincoln Baxter, III presents PrettyFaces at <a
href="http://jsfsummit.com">JSFSummit2009</a></p><p></center></div> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/prettyfaces/jsfsummit-2009-prettyfaces-makes-an-appearance/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>SEO for Business Marketers, Bloggers, and Everyone</title><link>http://ocpsoft.com/prettyfaces/seo-for-everyone/</link> <comments>http://ocpsoft.com/prettyfaces/seo-for-everyone/#comments</comments> <pubDate>Fri, 06 Nov 2009 19:51:24 +0000</pubDate> <dc:creator>Lincoln</dc:creator> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=369</guid> <description><![CDATA[I&#8217;m no SEO expert, but in growing my own brand, I&#8217;ve come to learn some crucial concepts, perhaps not entirely technical, but more social and practical in nature. I can&#8217;t and won&#8217;t try to tell you that google ranks your pages better if you use certain words and put them in a specific order. But [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;m no SEO expert, but in growing my own brand, I&#8217;ve come to learn some crucial concepts, perhaps not entirely technical, but more social and practical in nature. I can&#8217;t and won&#8217;t try to tell you that google ranks your pages better if you use certain words and put them in a specific order. But by using common sense, there are a few things we can all do to make our lives easier, and more visible.</p><p><span
id="more-369"></span></p><h2>Three Fundamentals of Search Optimization:</h2><ol><li><p>Content &#8211; Actually providing real, relevant information.</p></li><li><p>Credibility &#8211; Having external validation that your content is real, relevant</p></li><li><p>Context &#8211; Confirming to Search Engines that your content is credible <em>in the context where it is used.</em></p></li></ol><p><br/></p><h3>HTML links &#8211; Your ammunition, spend wisely:</h3><p>When you promote your site, instead of linking this way:</p><div
class="featured"><div
class="inside"> Check out <a
title="ScrumShark" href="http://scrumshark.com/">ScrumShark</a>, an Online Agile Project Management Tool, now in BETA!</div></div><p>Consider linking this way:</p><div
class="featured"><div
class="inside"> Check out <a
id="xybz" title="ScrumShark, an Online Agile Project Management Tool" href="http://scrumshark.com/">ScrumShark</a>, an Online Agile Project Management Tool, now in BETA!</div></div><p>Notice the title of the URL when you hover your mouse. (You could also include those words in the link text itself to achieve the same goal.)</p><h3>Let&#8217;s assume this second link is found in a comment on a blog related to any of &#8220;Scrum,&#8221; &#8220;Agile,&#8221; &#8220;Online,&#8221; &#8220;Project,&#8221; &#8220;Management,&#8221; or &#8220;Tool&#8221;:</h3><ol><li>Content &#8211; Your link now uses keywords found in it&#8217;s own address or title. Those keywords also exist in the page to which it points (+ SEO Points)</li><li>Credibility &#8211; You have another external link to your website (+ SEO Points)</li><li>Context &#8211; Your link lives on a page with keywords similar to those used in the link itself, and you provided it in a way that added value to those who read it (+ SEO Points, + Reputation: You look like you know what you are talking about)</li></ol><h3>Assuming this second link is found in a comment on your local grocery store website:</h3><ol><li>Content &#8211; Your link now uses keywords found in it&#8217;s own address. Those same keywords exist on the site to which it points (+ SEO Points)</li><li>Credibility &#8211; You have another external link to your website (+ SEO Points)</li><li>Context &#8211; Your link lives on a page that is completely unrelated to the business goals, or the link itself <span
style="color: #ff0000;">(- SEO Points, &#8211; Reputation: You look stupid)</span></li></ol><p>The more, better trusted, well known sites you have linking to yours, the more powerful these factors become &#8211; even the negatives.</p><p>However, there is one more thing you can do that is possibly more powerful.</p><h2>Put the keywords IN the URL HREF:</h2><p>If the link URL (the content of the link href=&#8221;&#8230;&#8221; attribute)  contains the keywords you are attempting to optimize, the reward from search engines may be even greater! How many times have you done a search, and the results highlighted keywords in the URL of the top results? Well&#8230; we can do that in JSF, and our custom web-applications, too.</p><p>Even better, that link can contain the keywords and be human readable, self-promoting. When people can read the text of a link they receive over Instant Messenger, or Email, they are much more likely to click it. I know I personally distrust links that I can&#8217;t understand. &#8211; for example:</p><div
class="featured"><div
class="inside"><p>&lt;a <b>href=&#8221;http://ocpsoft.com/prettyfaces/docs&#8221;</b>&gt;http://ocpsoft.com/prettyfaces/docs&lt;/a&gt;</p><p>Notice how this link is clear, it shows exactly where you are going to go, and it describes what you are going to see when you get there. It markets itself. Short, to the point. I will click this link (I may be biased <img
src='http://ocpsoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p></div></div><h3>&#8220;We hold these truths to be self evident&#8221;<a
href="http://www.seobook.com/do-you-need-use-url-rewriting">#</a></h3><ol><li>Pretty URLs look nicer, relay your content to search engines better, and people are more likely to click/remember/send-to-a-friend something that they can understand and process &#8211; both internally and externally to your site.</li><li>Pretty URLs will create better anchor/hover text if the link title is left blank. Just look at the browser &#8220;heads up&#8221; text when you hover over a link.</li><li>If you later change technologies, and have &#8220;.tech/.jsf/.seam/.do&#8221; extensions in your URLs, you&#8217;ve just instantly lost all SEO progress. Your content is now at a different location; you start over unless you have the ability to do perform 301 redirect (Moved Permenantly) to the new page from the old address. Search engines generally punish sites who use redirects.</li></ol><h2>Methods to put keywords in URLs, with or without <a
href="http://ocpsoft.com/prettyfaces" title="SEO, Dynamic Parameters, Bookmarks, and Navigation for JSF/JSF2">PrettyFaces</a>&#8230;</h2><p>Assuming your content is relevant to the context you are linking from, and you know actually know what you are talking about&#8230;</p><h4>Physical file per-URL:</h4><p><a
title="http://example.com/ex/faces/store/how-to-do-seo-with-prettyfaces-book.jsf" href="#">http://example.com/ex/faces/store/how-to-improve-seo-with-prettyfaces-book.jsf</a></p><ul><li>Readable &#8211; SEO friendly</li><li>No dynamic information provided &#8211; for each new url, a new file&#8230; why are you using JSF?</li><li>No extra configuration required &#8211; you don&#8217;t need PrettyFaces</li></ul><ul><li>Horrible to use in faces-config.xml navigation or &lt;h:link&gt;</li><li>URL suffers from the tech-conversion issue  ( <strong>*.jsf</strong> ) (Truth #3)</li></ul><h4>Query parameters in URL:</h4><p><a
href="#">http://example.com/ex/store.jsf?item=how-to-improve-seo-with-prettyfaces-book</a></p><ul><li><div>A little less readable, still SEO friendly</div></li><li><div>Anchor/hover text may not be so nice</div></li><li><div>URL is still technology dependent unless you remove the ( <strong>*.jsf</strong> ) extension with PrettyFaces (Truth #3)</div></li></ul><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-mapping</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;store&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/store<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;query-param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;item&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>#{itemBean.item}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/query-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;view-id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/faces/store.jsf<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/view-id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> #{itemBean.load} <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><h4> Path parameters in URL:</h4><p><a
href="#">http://example.com/ex/store/how-to-improve-seo-with-jsf-and-prettyfaces-book</a></p><ul><li><div>Most readable, still very SEO friendly (Truth #1)</div></li><li><div>Best &#8220;heads up&#8221;/anchor text (Truth #2)</div></li><li><div>URL is technology independent (Truth #3)</div></li><li><div>Even easier to implement than query-parameters</div></li></ul><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-mapping</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;store&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/store/#{itemBean.item}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;view-id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/faces/store.jsf<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/view-id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> #{itemBean.load} <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>So here, if your technology can support pretty URLs, like PrettyFaces does for JSF, then you can SEO yourself to heaven. Remember, though, that SEO is only one of many marketing techniques to use in the new technological age. Maybe your target audience is on the radio, maybe they are actually in grocery stores; the point is, find your audience and market to them where they are most willing to see your information, and take action. SEO may not be the best answer for you &#8211; before investing too much time and hard earned money, consider your options.</p><h2>No matter what technology you use&#8230;</h2><p>Follow at least these three guidelines:</p><ol><li>Content &#8211; Actually provide real content, put keywords in &lt;h1&gt;header&lt;/h1&gt; tags. (+ SEO Points, + Reputation)</li><li>Consistency &#8211; Make sure your URLs use main keywords found on the page you are displaying. (+ SEO Points, + Reputation)</li><li>Context &#8211; If it&#8217;s not adding value, or is not relevant, don&#8217;t post it. <span
style="color: #ff0000;">(- SEO Points, &#8211; Reputation: You look stupid)</span></li></ol><p>And you might want to protect yourself from a technology change. That&#8217;s just the worst way to go out of a well optimized site, into the pits of search listings nobody will see &#8211; of course, it means your next technology also needs to support pretty URLs <img
src='http://ocpsoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/prettyfaces/seo-for-everyone/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>New releases, and changes coming in PrettyFaces</title><link>http://ocpsoft.com/prettyfaces/new-releases-and-changes-coming-in-prettyfaces/</link> <comments>http://ocpsoft.com/prettyfaces/new-releases-and-changes-coming-in-prettyfaces/#comments</comments> <pubDate>Tue, 03 Nov 2009 16:09:35 +0000</pubDate> <dc:creator>Lincoln</dc:creator> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=351</guid> <description><![CDATA[PrettyFaces &#8211; SEO, Dynamic Parameters, Bookmarks, and Navigation for JSF / JSF2 version 2.0.3 offers a BIG new feature for URL validation, while 1.2.6 is a maintenance release, primarily adding the &#60;p:link anchor=&#8221;&#8230;&#8221;&#62; attribute &#8211; it does not include the new validation features. Coinciding with the JSF2.0 release, OcpSoft will be updating PF1.2.x for maintenance [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://ocpsoft.com/prettyfaces">PrettyFaces &#8211; SEO, Dynamic Parameters, Bookmarks, and Navigation for JSF / JSF2</a> version 2.0.3 offers a BIG new feature for <a
href="#validation">URL validation</a>, while 1.2.6 is a maintenance release, primarily adding the &lt;p:link anchor=&#8221;&#8230;&#8221;&gt; attribute &#8211; it does not include the new validation features.</p><p>Coinciding with the JSF2.0 release, OcpSoft will be updating PF1.2.x for maintenance only, however, community participation is still welcome on all versions of the project.</p><p><span
id="more-351"></span></p><p>You can now become <a
href="http://ocpsoft.com/prettyfaces/powered" target="_blank">powered-by-prettyfaces</a>, or have your prettyfaces-powered site listed to build additional SEO page-rank. We want to know who is using our tool!</p><div
class="featured"><div
class="inside"><p><span
style="color: red">Note:</span> There is one additional change in both 2.0.3 and 1.2.6 that people should be aware of. PrettyFaces will be making a shift in underlying architecture to take advantage of more advanced features in JSF2. Going forward, Pretty &lt;action&gt; methods will no longer be called <strong>BEFORE</strong> RESTORE_VIEW phase, but will be called <strong>AFTER</strong> RESTORE_VIEW phase by default. Dynamic View-ID functionality should be considered deprecated, but don&#8217;t worry, there will be an equivalent provided.</p></div></div><p>While it could potentially impact some applications functional behavior, the change is necessary in order to make progress and enable cool new features now and in the future! So, apologies for any trouble, but we&#8217;re sure that you&#8217;ll like what&#8217;s coming!</p><h2><a
name="validation"></a>Big new feature in 2.0.3_RC1:</h2><p><a
href="http://ocpsoft.com/prettyfaces/docs/#validation">Integrated URL validation </a> &#8211; Everyone should be afraid of user input, and parsing values from the URL is no different. But be not afraid! It is now possible to attach JSF validators to URL and Query parameters. This functionality parallels the new &lt;f:pageParam&gt; tag provided in JSF2, but also provides additional hooks into Validation error handling.</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-mapping</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;validate&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pattern</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;/validate/#{validationBean.pathInput}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;validate</span> <span style="color: #000066;">param</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">validatorIds</span>=<span style="color: #ff0000;">&quot;validator1 validator2&quot;</span> </span>
<span style="color: #009900;">			<span style="color: #000066;">onError</span>=<span style="color: #ff0000;">&quot;#{validationBean.handle}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;query-param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;param1&quot;</span> <span style="color: #000066;">validatorIds</span>=<span style="color: #ff0000;">&quot;validator2&quot;</span> <span style="color: #000066;">onError</span>=<span style="color: #ff0000;">&quot;pretty:demo&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		#{validationBean.queryInput}
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/query-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;view-id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/faces/validation/test.jsf<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/view-id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>As you can see, path parameters may now be validated with the &lt;validate&gt; element, and query parameters have a new &#8220;validatorIds&#8221; attribute. Any number of validatorIds may be attached to a given parameter. If validation fails, the system will send a 404 &#8211; Page Not Found response to the client.</p><p>If the default validation error handling is not enough, each validation may be provided with an optional &#8220;onError&#8221; attribute, which can be a &#8220;pretty:mappingId&#8221; (which issues a redirect to the page specified), or a #{jsfBean.handlerMethod} to allow complete control of the validation error. If the handler method returns null, or empty, the error is ignored and the lifecycle will continue. If the handler method returns a pretty:mappingId, PrettyFaces navigation will be invoked.</p><div
class="featured"><div
class="inside"> Validation processing follows a defined lifecycle:<br/><br
/><div
id="attachment_332" class="wp-caption alignleft" style="width: 703px"><img
src="http://ocpsoft.com/wp-content/uploads/2009/11/prettyfaces-validation.png" alt="PrettyFaces Validation Flow" title="prettyfaces-validation" width="693" height="390" class="size-full wp-image-332" /><p
class="wp-caption-text">PrettyFaces Validation Flow</p></div></div></div><p>May the <a
href="http://ocpsoft.com/prettyfaces/powered" target="_blank">power of pretty</a> be with you.</p><p><br/><br/></p> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/prettyfaces/new-releases-and-changes-coming-in-prettyfaces/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>PrettyFaces: Hear about it at JSFSummit!</title><link>http://ocpsoft.com/prettyfaces/prettyfaces-hear-about-it-at-jsfsummit/</link> <comments>http://ocpsoft.com/prettyfaces/prettyfaces-hear-about-it-at-jsfsummit/#comments</comments> <pubDate>Wed, 30 Sep 2009 23:20:55 +0000</pubDate> <dc:creator>Lincoln</dc:creator> <category><![CDATA[PrettyFaces]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=203</guid> <description><![CDATA[OcpSoft co-founder Lincoln Baxter will be speaking about PrettyFaces at JSFSummit, in Orlando FL &#8211; Dec 1st-4th, 2009. The Presentation covers PrettyFaces basics, Search Engine Optimization, Rethinking Navigation, and Dynamic ViewIds: PrettyFaces &#8211; Harness SEO, Improve User Experience, Ease Development J2EE is already the perfect solution for complex business/enterprise systems, and JSF2.x is the perfect [...]]]></description> <content:encoded><![CDATA[<h3>OcpSoft co-founder <a
href="http://www.jsfsummit.com/conference/speaker/lincoln_baxter_iii" target="_blank">Lincoln Baxter</a> will be speaking about <a
href="http://ocpsoft.com/prettyfaces" target="_self" title="SEO, Dynamic Parameters, Bookmarks, and Navigation for JSF/JSF2">PrettyFaces</a> at <a
href="http://jsfsummit.com" target="_blank">JSFSummit</a>, in Orlando FL &#8211; Dec 1st-4th, 2009.</h3><p>The Presentation covers PrettyFaces basics, Search Engine Optimization, Rethinking Navigation, and Dynamic ViewIds:</p><p><span
id="more-203"></span></p><div
class="featured"><div
class="inside"><table
cellspacing="15"><tr><td><img
src="http://ocpsoft.com/wp-content/uploads/2009/09/32333_Baxter_III_medium.jpg" alt="Lincoln Baxter, III" title="Lincoln Baxter, III" width="126" height="170" class="alignleft size-full wp-image-373" /></td><td><h2>PrettyFaces &#8211; Harness SEO, Improve User Experience, Ease Development</h2><p>J2EE is already the perfect solution for complex business/enterprise systems, and JSF2.x is the perfect chance to reach out to the consumer and small business market. JSF is easier to use than it&#8217;s ever been before, but small businesses have different needs than larger companies and corporations. PrettyFaces, however, is not just for small businesses; this session will present how it makes JSF accessible for anyone developing client-facing applications, addressing SEO optimization, and creating clean, consistent, intuitive client interactions on the web.</p></td></tr></table
</div><div
class="inside" style="margin-top: 15px;"><h3>How PrettyFaces works:</h3><p>The talk introduces you to URL rewriting, storing contextual information, and managing page configuration data with address and query parameters (resource identification, table pagination, data filters.) PrettyFaces&#8217; centralized approach uses URLs to retain the state of pages, meaning less information must be stored in session and application scoped beans.</p><h3>Rethinking navigation:</h3><p>Navigation from the eye of the client. JSF supports page flows well, but managing simple transitions from one page to another can be complex.  Demonstrations of PrettyFaces integrated navigation, hyper-linking via Bijection and Components will show how developers gain increased control over all aspects of navigation out of the box, and how this is accomplished without extra configuration.</p><h3>SEO:</h3><p>You will be presented with concepts of how to improve client experience, confidence, and conversions through creating a consistent look and feel &#8211; the importance the browser URL plays an in establishing and trust through all client interactions.</p><h3>Security &amp; Usability:</h3><p>The talk will discuss issues of security and usability. Security means restricting access and functionality; the client should be confident in their safety, yet never feel as if they are overly constrained. Examples show how PrettyFaces dynamic view identifiers allow extreme flexibility, increased security in abstracting resource locations, and will demonstrate how to create the appropriate experience in scenarios where users attempt to access restricted or unavailable resources.</p></div><div
class="inside" style="margin-top: 15px;"><h3>About Lincoln:</h3><p><a
href="http://twitter.com/lincolnthree">Lincoln Baxter, III</a> is a co-founder of <a
href="http://twitter.com/ocpsoft">OcpSoft</a>, the author of <a
href="http://ocpsoft.com/prettyfaces">PrettyFaces: SEO, Dynamic Parameters, Bookmarks, and Navigation for JSF / JSF2</a>, and an individual member of the JSF2 Expert Group. When he is not swimming, running, or playing Ultimate Frisbee, Lincoln is focused on developing streamlined applications for the Agile and Scrum development methodologies.</div></div><p
style="text-align: center;"><a
href="http://www.nofluffjuststuff.com"> <img
class="aligncenter" src="http://www.nofluffjuststuff.com/images/nfjs_logo200.gif" alt="No Fluff Just Stuff" /> </a></p> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/prettyfaces/prettyfaces-hear-about-it-at-jsfsummit/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Calling All PrettyFaces Users!</title><link>http://ocpsoft.com/prettyfaces/calling-all-prettyfaces-users/</link> <comments>http://ocpsoft.com/prettyfaces/calling-all-prettyfaces-users/#comments</comments> <pubDate>Sun, 30 Aug 2009 16:41:17 +0000</pubDate> <dc:creator>Lincoln</dc:creator> <category><![CDATA[PrettyFaces]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[JSF]]></category><guid
isPermaLink="false">http://ocpsoft.com/?p=70</guid> <description><![CDATA[Are you using PrettyFaces on a project you can share about? Looking for real-world experiences: How has PrettyFaces helped you or your team? What would you change if you could (you can)? If you would like to share, show us your work of art! Email to: lincoln@ocpsoft.com Thank you! PS &#8211; In addition: If you&#8217;d [...]]]></description> <content:encoded><![CDATA[<h3>Are you using PrettyFaces on a project you can share about?</h3><p>Looking for real-world experiences:</p><ul><li>How has PrettyFaces helped you or your team?</li><li>What would you change if you could (you can)?</li><li>If you would like to share, show us your work of art!</li></ul><p>Email to: lincoln@ocpsoft.com</p><p>Thank you!</p><p>PS &#8211; In addition: If you&#8217;d like to be added to our new &#8220;People using PrettyFaces&#8221; page, also send a logo and a short description of your product or company!</p> ]]></content:encoded> <wfw:commentRss>http://ocpsoft.com/prettyfaces/calling-all-prettyfaces-users/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Served from: ocpsoft.com @ 2010-07-29 17:18:39 by W3 Total Cache -->