Using JSF and Flex Components Together
Exadel Fiji extends JavaServer Faces (JSF) by allowing the use of Flex components within a JSF page. Fiji stands for “Flex and JSF Integration.” When using Fiji components, developers use Flex with the same component-based approach to building user interfaces that they are familiar with from JSF. This means that Flex components are bound to standard JSF managed beans. Fiji is a framework that provides the following: A library of ready-to-use Flex charting components for JSF A universal wrapper that allows the use of any Flex component within a JSF page Most importantly, with Fiji, you can bind Flex components to the same JSF-managed beans properties or methods (or Seam components or Spring beans) used by the rest of your JSF application. The current version ships with the following ready-to-use charts: Column chart Stacked column chart Bar chart Stacked bar chart Line chart For example, here is a screenshot of a Flex component inside a JSF page [img_assist|nid=5013|title=|desc=|link=none|align=undefined|width=341|height=398] You can see all Fiji components in action at http://livedemo.exadel.com/fiji-demo Now that I have given you a short introduction to Fiji, you are probably wondering what problem Fiji is trying to solve. Let's see. Why Fiji? Let's start with the basics. JavaServer Faces (JSF) is a standard (Java EE) framework for building Web user interfaces out of components. Today, we are interested in building Rich Internet Applications, so RichFaces was created takes JSF a step further by allowing the easier building of AJAX-based applications in JSF. (In case you don't know, RichFaces offers a large number of ready-to-use AJAX components.) While JSF has been constantly growing, one area where it's still lacking is in displaying rich and interactive charts, graphs, and other similar visuals. Even with AJAX, any serious charting is extremely difficult, not to mention the testing that would be required for different browsers. It really comes down to two things. First, the technologies used behind JSF such as HTML, JavaScript, and CSS are not meant for displaying rich and interactive visual data (possible, but very difficult). Second, people have much higher expectations from a browser. The browser alone was never meant to display such visual data. It was primarily meant to display text and static images. So, in the end, it's not really JSF’s fault, we are simply asking the underlying technologies (HTML, JavaScript, CSS, the browser) to do too much. Of course, there is hope. We can use a Flash player to display rich and interactive charts. Adobe Flash With Flex, complex rich applications can be compiled and then run inside a Flash player. A Flash player is a virtual machine that installs as a plug-in into any browser. Because the application (built with Flex) is running inside a virtual machine, it provides a far more superior environment for rich and interactive charts and graphs than the browser alone (which just interprets HTML, JavaScript, etc.). The obvious next question is: So, why not use Flex and JSF components together right now? While it's possible to use Flex and JSF components inside the same page, the two technologies are not aware of each other. This means that JSF components are bound to JSF managed beans (or Seam components or Spring beans) while Flex is bound to completely different objects. This kind of integration is equivalent to inserting an image into a JSF page – in other words, not much integration. Back to Fiji This is a good place to revisit Fiji. Fiji is the perfect fit for helping with the above problem. Not only does Fiji provide ready-to-use chart components and a universal wrapper to use any Flex component, but, with Fiji, you can bind Flex components to standard JSF managed beans. As a JSF developer, you just use the standard and the familiar JSF component-centric approach, while now also being able to use Flex components. So, where does it make sense to use Fiji. One scenario is if you have an existing JSF application and you would like to insert richer content based on Flash while still using your existing model (JSF managed beans, Seam components or Spring beans). This content can be charts, graphs or any other rich content. Another situation where Fiji would make sense is where you have an existing JSF application, but want to use a Flash-based user interface (instead of HTML/JavaScript). By using Fiji, you can still use the existing model part of your application. However, to be honest, it wouldn't make sense to use Fiji if you have an existing Flash-only application and are using a service like GraniteDS, BlazeDS, or Exadel Flamingo. Now, I think we are ready for examples. Using Fiji There are three basic steps to get started. Download project Download JAR file and add them to project template Open the project in your favorite IDE Download Project template Download and unzip the project template. Download Fiji JAR files Go to http://exadel.com/web/portal/fiji and click on Download to download Fiji distribution Unzip the downloaded file In the next step you are going to copy JAR files from lib folder to fiji/web/WEB-INF/lib directory 1. If running Tomcat 5.5, copy all files 2. If you are running Tomcat 6, copy all files except: ¦ el-api.1.0.jar ¦ el-impl-1.0.jar Import Project Import the project into your favorite IDE. Here is how to do it in JBoss Tools (same steps for JBoss Developer Studio). Select File/Import Select Other Select JSF Project Point to the web.xml file location in the project Click Next Keep all setting as they are (I'm assuming you have a server defined) Click Finish To tell you the truth, installing Fiji is very simple. It's basically a RichFaces project (has to be RichFaces version 3.2.2 or higher) plus the JAR files for Fiji: fiji-api-1.x.x.jar fiji-ui-1.x.x.jar flamingo-service-jsf-1.6.x.jar - to use HttpService via component. Covered later in article. Besides using HttpService, if you would like to use DataServices (AMF format), you need two additional JAR files: amf-serializer-1.6.x.jar That's it. Nothing else is needed, not even changes to web.xml. Using Bar Chart Let's start with a simple example using bar chart. The first step is to create the data for the chart. Because we can easily bind charts to JSF managed beans, that's where we are going to create our data. The Java bean looks like this: public class BarChartBean { public BarChartBean() { } private Integer[] data; public Integer[] getData() { return data; } @PostConstruct public void init () { data = new Integer[5]; data[0] = 5; data[1] = 2; data[2] = -3; data[3] = 10; data[4] = 9; } } To make it a JSF managed bean we need to register it in a JSF configuration file: barChartBean fiji.BarChartBean session So far this is just basic JSF. Let's now create the page. Open start.xhtml. Look at the top, the page already contains a namespace for the Fiji tag library. Insert the following between tags: is just like a standard JSF component. The value attribute is bound to chart data inside the managed bean. sets the chart name. Save everything and run the page. You should get the following: [img_assist|nid=5014|title=|desc=|link=none|align=undefined|width=672|height=394] Let's try another example, this time using column chart. I'm sure most of you still remember the Summer Olympics, so we'll take the medal count and display it in the chart. Using the column chart You can reuse the same page or create a new page if you would like. If you create a new page, make sure to include the namespace for Fiji. We are going to take the top three countries (USA, China, and Russia) and display their gold, silver and bronze medal count. As before, let's start with data for the chart. The Java bean looks like this: public class MedalsBean { private Map medalsData = new LinkedHashMap(); private ArrayList colors = new ArrayList(); private ArrayList names = new ArrayList(); private Integer[] medalsChina = new Integer[]{51, 21, 28}; private Integer[] medalsUSA = new Integer[]{36, 38, 36}; private Integer[] medalsRussia = new Integer[]{23, 21, 28}; @PostConstruct private void init() { medalsData.put("China", medalsChina); medalsData.put("USA", medalsUSA); medalsData.put("Russia", medalsRussia); names.add("Gold"); names.add("Silver"); names.add("Bronze"); colors.add("#DAA520"); colors.add("#C0C0C0"); colors.add("#B87333"); } public Map getMedalsData() { return medalsData; } public ArrayList getColors() { return colors; } public ArrayList getNames() { return names; } public Integer[] getMedalsChina() { return medalsChina; } public Integer[] getMedalsUSA() { return medalsUSA; } public Integer[] getMedalsRussia() { return medalsRussia; } } Because we now display three bars per country (one for each medal), we use a Map object and inside it put an array of integers representing the medal count. To make it a JSF managed bean, we need to register is in a JSF configuration file: medalsBean fiji.MedalsBean request Now we are ready to build the page. The page is not much different than in the first example: Running the page will produce the following: [img_assist|nid=5015|title=fiji3|desc=|link=none|align=undefined|width=339|height=404] While the integration with JSF is neat (we can easily use JSF managed beans as a data model for Flex components), we can even take it a step further. It's possible to click on a Flex chart, send an AJAX request and do a partial page update. Let's see how it's done. Event handlers Fiji components have event handlers such as onitemclick which are very similar to the standard DHTML event handlers such as onkeyup. Going back to our example, let's say we want to click on any bar and display the medal information outside the chart. When a bar is clicked, an AJAX request will be sent to the server, properties will be set, and then rerendered. The changes to the managed bean are minimal. All we do is add three properties: private String countrySelected; private String medalTypeSelected; private String medalCountSelected; // getter and setters methods Don't forget to generate getters and setters. This is how our page now looks. We use the most popular tag from RichFaces, to attach an event (onitemclick) to the parent component, . When a bar is clicked on a chart, an Ajax request is sent to the server passing three arguments defined by the tag. The tag automatically takes the value from value attribute and assigns it to property defined in the assignTo attribute. The following three arguments are passed: event.x – is the x-axis data. In our case, it is the country name event.y – is the y-axis data. In our case, it is the medal count event.name – is the the active bar. In our case, it will be the medal type selected I have also set noEscape=”true” for each . This is necessary in order for the value to be treated as JavaScript code instead of being enclosed in single quotes and just passed to the server as a parameter. Finally, we rerender the information inside the panel grid. As you can see, we are using standard RichFaces techniques to send and rerender information even though we are mixing in Flex components. Using the universal wrapper So far I have shown you how to use charting components that ship with Fiji. Obviously you might want to use other, existing Flex components or maybe even build your own. To use any other Flex components, we use the universal wrapper or component. We will use one of the charts provided by amCharts.com. Note: We can use their charts for free. The only limitation is that a small URL will appear pointing to their Web site. I don't think it's such a limitation for such nice charts. The SWF file for the chart as well as chart data are included in the template under web/ampie directory. You can also download them from here: SWF file – ampie.swf Settings file – ampie_settings.xml Data file – ampie_data.xml The page looks like this: Using the src attribute of , we point to a Flash component. The Flash component can also be loaded as a resource by using src=“resource:///file.swf”. This particular Flash component (ampie.swf) requires some data. The data is being passed using the standard JSF attribute, . When a Flash object is rendered on a page, it has a special flashVars attribute that provides arguments to the Flash module. In our case, the tags with their information are rendered as flashVar arguments to the Flash component. This is how the charts gets its data. Running the page will produce the following: [img_assist|nid=5016|title=|desc=|link=none|align=undefined|width=539|height=384] In case you need to update the data for the chart, one possible way is to rerender the Flash component using the standard RichFaces approach. Using As a final example, I'm going to show you how to use together with . This will allow us to send a parameter from a Flash component to a JSF managed bean. Let's start with the Flash part. This is the Flex application we want to use in our JSF page: hello.mxml: It's a pretty simple MXML file which you can compile either in Flex Builder or just from the command line after installing Flex SDK >mxmlc hello.mxml I have also provided the SWF file inside the template (and here hello.swf ) in case you want to skip the compilation step. The MXML file will produce the following: [img_assist|nid=5017|title=|desc=|link=none|align=undefined|width=267|height=110] Now, let's look at the JSF page: is used to include the Flash component as we did before. The service attribute points to a JSF managed bean with a method called greeting: public Object greeting(Object value){ if(value != null){ return "What's up, "+value+"?"; } else { return "What's up, unknown?"; } } It also has to be registered in a JSF configuration file: serviceBean fiji.ServiceBean request I will cover HelloDecoder and HelloEncoder later. When running this page, we will get something very similar to the previous image; however, now it's inside a JSF page and, if we enter a value for Username and click Submit, we will get the following. [img_assist|nid=5018|title=|desc=|link=none|align=undefined|width=271|height=118] The question is, how are we able to send a request to the JSF managed bean from the Flash component? It's done via the component: We define an endpoint with the name of fiji. If you look back at the MXML file, we have the following: private function send():void { userRequest = new HTTPService(); userRequest.url = Application.application.parameters.fiji; userRequest.addEventListener("result", httpResult); var param:Object = {}; param["hello"] = username.text; userRequest.send(param); } Inside the Flex component, the HTTP URL points to Application.application.parameters.fiji which in turn points to the Fiji endpoint defined in the JSF page by tag. When the Submit button inside the Flash is clicked, the URL is resolved. This is a standard JSF request and that's how we invoke the serviceBean.greeting method inside a JSF managed bean. The URL is again passed via the flashVars attribute when the page is rendered. Finally, the initial label value is set via {Application.application.parameters.text} Its value is set via this tag: Decoders and Encoders First, why do we even need these decoders and encoders? Well, when using the Flex HttpService, the data is being sent to the server and returned in XML format. The JSF managed bean that we are using doesn't know anything about XML. It simply returns a string value. So, in order to convert the request into a format that the managed bean understands, we use a decoder. When we invoke a method, the value returned has to be encoded in order for the Flash module to understand it. I know, it sounds complicated, but it's really not. The decoder shown below will be called by Fiji and the value returned will be passed to the greeting(Object) method inside a JSF managed bean. The decoder will just pull the value from the XML sent by the request. public class HelloDecoder implements FlexDecoder , Serializable { private static final String ENDPOINT_PARAM = "hello"; public Object decodeRequest(FacesContext context, UIComponent component) { return context.getExternalContext().getRequestParameterMap().get(ENDPOINT_PARAM); } } When the greeting(Object) method inside the JSF managed bean returns a value, this encoder will be called to convert the response back to XML format. public class HelloEncoder implements FlexEncoder { private static final String VALUE = "value"; public void encodeObject(FacesContext context, UIComponent component, Object object) throws IOException { ResponseWriter responseWriter = context.getResponseWriter(); responseWriter.startElement(VALUE, component); responseWriter.writeText(object, null); responseWriter.endElement(VALUE); } } You can implement different encode and decode methods in case your Flash module requires the XML request/response to be in a specific format. Summary This article showed how you can use JSF and Flex component together while using standard JSF managed beans to provide data for the Flash components. That's what makes this framework unique. As a developer, you can continue using the standard component-centric JSF approach, but now you are able to inject even richer content using Flash. To learn more, please visit the Fiji home page: http://exadel.com/web/portal/fiji About the Author Max Katz is a Senior Systems Engineer at Exadel. He has been helping customers jump-start their RIA development as well as providing mentoring, consulting, and training. Max is a recognized subject matter expert in the JSF developer community. He has provided JSF/RichFaces training for the past three years, presented at many conferences, and written several published articles on JSF-related topics. Max also leads Exadel's RIA strategy and writes about RIA technologies in his blog, https://exadel.com/newsroom/blog/. He is an author of Practical RichFaces book (Apress). Max holds a BS in computer science from the University of California, Davis.
September 16, 2008
·
111,630 Views
·
1 Like
Comments
Mar 04, 2019 · DZone_karap
Very true - thanks for your comment.
May 17, 2014 · Mr B Loid
I think the "your" is coming from the original article, I was just quoting it. Correct me if I'm wrong...
I think it's going to take at least 3-5 for cloud IDEs to gain more traction. And of course traditional tools will always be there. As I mentioned in the article, I don't think people believed email can be in the cloud, CRM can be in the cloud, and your word processing can be in the cloud.
As for price, enterprises and business spend large sums of money maintaing and updating tooling - cloud tooling can save a lot of money and time.
I guess free is always nice but at the end that free tool has to provide value.
I'm seeing a shift in developer's attitude towards free - if a cloud tool/service provides good value, increases productivity, they don't mind paying for it.
May 17, 2014 · Mr B Loid
I think the "your" is coming from the original article, I was just quoting it. Correct me if I'm wrong...
I think it's going to take at least 3-5 for cloud IDEs to gain more traction. And of course traditional tools will always be there. As I mentioned in the article, I don't think people believed email can be in the cloud, CRM can be in the cloud, and your word processing can be in the cloud.
As for price, enterprises and business spend large sums of money maintaing and updating tooling - cloud tooling can save a lot of money and time.
I guess free is always nice but at the end that free tool has to provide value.
I'm seeing a shift in developer's attitude towards free - if a cloud tool/service provides good value, increases productivity, they don't mind paying for it.
May 17, 2014 · Mr B Loid
I think the "your" is coming from the original article, I was just quoting it. Correct me if I'm wrong...
I think it's going to take at least 3-5 for cloud IDEs to gain more traction. And of course traditional tools will always be there. As I mentioned in the article, I don't think people believed email can be in the cloud, CRM can be in the cloud, and your word processing can be in the cloud.
As for price, enterprises and business spend large sums of money maintaing and updating tooling - cloud tooling can save a lot of money and time.
I guess free is always nice but at the end that free tool has to provide value.
I'm seeing a shift in developer's attitude towards free - if a cloud tool/service provides good value, increases productivity, they don't mind paying for it.
May 17, 2014 · James Sugrue
I think the "your" is coming from the original article, I was just quoting it. Correct me if I'm wrong...
I think it's going to take at least 3-5 for cloud IDEs to gain more traction. And of course traditional tools will always be there. As I mentioned in the article, I don't think people believed email can be in the cloud, CRM can be in the cloud, and your word processing can be in the cloud.
As for price, enterprises and business spend large sums of money maintaing and updating tooling - cloud tooling can save a lot of money and time.
I guess free is always nice but at the end that free tool has to provide value.
I'm seeing a shift in developer's attitude towards free - if a cloud tool/service provides good value, increases productivity, they don't mind paying for it.
May 17, 2014 · James Sugrue
I think the "your" is coming from the original article, I was just quoting it. Correct me if I'm wrong...
I think it's going to take at least 3-5 for cloud IDEs to gain more traction. And of course traditional tools will always be there. As I mentioned in the article, I don't think people believed email can be in the cloud, CRM can be in the cloud, and your word processing can be in the cloud.
As for price, enterprises and business spend large sums of money maintaing and updating tooling - cloud tooling can save a lot of money and time.
I guess free is always nice but at the end that free tool has to provide value.
I'm seeing a shift in developer's attitude towards free - if a cloud tool/service provides good value, increases productivity, they don't mind paying for it.
May 17, 2014 · James Sugrue
I think the "your" is coming from the original article, I was just quoting it. Correct me if I'm wrong...
I think it's going to take at least 3-5 for cloud IDEs to gain more traction. And of course traditional tools will always be there. As I mentioned in the article, I don't think people believed email can be in the cloud, CRM can be in the cloud, and your word processing can be in the cloud.
As for price, enterprises and business spend large sums of money maintaing and updating tooling - cloud tooling can save a lot of money and time.
I guess free is always nice but at the end that free tool has to provide value.
I'm seeing a shift in developer's attitude towards free - if a cloud tool/service provides good value, increases productivity, they don't mind paying for it.
Mar 19, 2012 · Tony Thomas
Oct 27, 2011 · Max Katz
Oct 27, 2011 · Max Katz
Sep 16, 2011 · Mr B Loid
Sep 16, 2011 · Mr B Loid
Sep 16, 2011 · Mr B Loid
Sep 16, 2011 · James Sugrue
Sep 16, 2011 · James Sugrue
Sep 16, 2011 · James Sugrue
Sep 07, 2011 · James Sugrue
Sep 07, 2011 · James Sugrue
Sep 07, 2011 · James Sugrue
Aug 17, 2011 · Foo Bar
Another tool you can try is Tiggr. Tiggr is a Web-based IDE for building mobile web and native apps. You are no limited to just Android. Here is how it works. You prototype and build the UI with jQuery Mobile components, define and map services, then test the app right in the browser. To get a native app, we use PhoneGap library. http://gotiggr.com
Jul 22, 2011 · Andriy Solovey
Jul 22, 2011 · Andriy Solovey
Jul 22, 2011 · James Sugrue
Jul 22, 2011 · James Sugrue
Mar 31, 2011 · Gerd Storm
Mar 31, 2011 · Gerd Storm
Mar 31, 2011 · Gerd Storm
Mar 31, 2011 · Gerd Storm
Mar 31, 2011 · Max Katz
Mar 31, 2011 · Max Katz
Mar 31, 2011 · Max Katz
Mar 31, 2011 · Max Katz
Mar 08, 2011 · David Walsh
Mar 08, 2011 · David Walsh
Mar 08, 2011 · David Walsh
Mar 08, 2011 · Matt Raible
Mar 08, 2011 · Matt Raible
Mar 08, 2011 · Matt Raible
Mar 07, 2011 · Tony Thomas
Mar 07, 2011 · Tony Thomas
Mar 07, 2011 · Tony Thomas
Mar 07, 2011 · Max Katz
Mar 07, 2011 · Max Katz
Mar 07, 2011 · Max Katz
Mar 02, 2011 · Tony Thomas
Mar 02, 2011 · Tony Thomas
Mar 02, 2011 · Tony Thomas
Mar 02, 2011 · Tony Thomas
Mar 02, 2011 · Max Katz
Mar 02, 2011 · Max Katz
Mar 02, 2011 · Max Katz
Mar 02, 2011 · Max Katz
Jan 27, 2011 · admin
Jan 27, 2011 · admin
Jan 27, 2011 · admin
Jan 27, 2011 · admin
Jan 27, 2011 · Max Katz
Jan 27, 2011 · Max Katz
Jan 27, 2011 · Max Katz
Jan 27, 2011 · Max Katz
Jan 27, 2011 · admin
Jan 27, 2011 · admin
Jan 27, 2011 · admin
Jan 27, 2011 · admin
Jan 27, 2011 · Max Katz
Jan 27, 2011 · Max Katz
Jan 27, 2011 · Max Katz
Jan 27, 2011 · Max Katz
Nov 30, 2010 · Mr B Loid
Nov 30, 2010 · Rauf Issa
Aug 11, 2010 · Mirko Novakovic
Jun 28, 2010 · Ryan Baldwin
Jun 28, 2010 · Max Katz
Jun 24, 2010 · Ryan Baldwin
Jun 24, 2010 · Ryan Baldwin
Jun 24, 2010 · Ryan Baldwin
Jun 24, 2010 · Ryan Baldwin
Jun 24, 2010 · Max Katz
Jun 24, 2010 · Max Katz
Jun 24, 2010 · Max Katz
Jun 24, 2010 · Max Katz
Jun 18, 2010 · James Sugrue
Max
http://mkblog.exadel.com
Jun 17, 2010 · Ari Gesher
Max
http://mkblog.exadel.com
Jun 17, 2010 · mitchp
Max
http://mkblog.exadel.com
Jun 10, 2010 · Johan Vos
Feb 19, 2010 · James Sugrue
James - great points! I would also like to add this:
1) Improve start up time
2) Make it really really simple to download and install Java runtime on the client.
Max
http://mkblog.exadel.com
Jan 14, 2010 · Mr B Loid
Max
http://mkblog.exadel.com
Jan 14, 2010 · mitchp
Max
http://mkblog.exadel.com
Jan 08, 2010 · Frank Kelly
Max
http://mkblog.exadel.com
Jan 08, 2010 · James Sugrue
Max
http://mkblog.exadel.com
Nov 05, 2009 · Max Katz
Oct 28, 2009 · admin
Oct 28, 2009 · admin
Oct 28, 2009 · Max Katz
Oct 28, 2009 · Max Katz
Oct 08, 2009 · admin
Oct 08, 2009 · admin
Oct 08, 2009 · admin
Oct 08, 2009 · Max Katz
Oct 08, 2009 · Max Katz
Oct 08, 2009 · Max Katz
Oct 08, 2009 · admin
Oct 08, 2009 · admin
Oct 08, 2009 · admin
Oct 08, 2009 · Max Katz
Oct 08, 2009 · Max Katz
Oct 08, 2009 · Max Katz
Sep 15, 2009 · Kyle Pott
RichFaces parser can be turned off or configured only for particular pages.
Max
http://mkblog.exadel.com
Sep 15, 2009 · James Sugrue
RichFaces parser can be turned off or configured only for particular pages.
Max
http://mkblog.exadel.com
Sep 08, 2009 · Peter Stofferis
Sep 08, 2009 · Peter Stofferis
Sep 08, 2009 · Peter Stofferis
Sep 08, 2009 · Max Katz
Sep 08, 2009 · Max Katz
Sep 08, 2009 · Max Katz
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Sandro Paganotti
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 27, 2009 · Max Katz
Aug 21, 2009 · Denis Gobo
Aug 21, 2009 · James Sugrue
Aug 07, 2009 · Max Katz
Aug 06, 2009 · Max Katz
Aug 06, 2009 · Max Katz
Aug 06, 2009 · Max Katz
Aug 03, 2009 · Peter Stofferis
You can do this:
<a4j:support event="onblur" action="#{bean.someAction}"/>
Aug 03, 2009 · Peter Stofferis
You can do this:
<a4j:support event="onblur" action="#{bean.someAction}"/>
Aug 03, 2009 · Peter Stofferis
You can do this:
<a4j:support event="onblur" action="#{bean.someAction}"/>
Aug 03, 2009 · Max Katz
You can do this:
<a4j:support event="onblur" action="#{bean.someAction}"/>
Aug 03, 2009 · Max Katz
You can do this:
<a4j:support event="onblur" action="#{bean.someAction}"/>
Aug 03, 2009 · Max Katz
You can do this:
<a4j:support event="onblur" action="#{bean.someAction}"/>
Jul 29, 2009 · Regnard Kreisler Raquedan
Definitely, the ability to use any Java class on the client is a big plus but the question is how to connect to enterprise back-ends such as EJB3/Spring/Seam/JSR299.
Max
http://mkblog.exadel.com
Jul 29, 2009 · Charles Ditzel
Definitely, the ability to use any Java class on the client is a big plus but the question is how to connect to enterprise back-ends such as EJB3/Spring/Seam/JSR299.
Max
http://mkblog.exadel.com
Jul 29, 2009 · Peter Stofferis
Jul 29, 2009 · Peter Stofferis
Jul 29, 2009 · Max Katz
Jul 29, 2009 · Max Katz
Jul 29, 2009 · Regnard Kreisler Raquedan
Max
http://mkblog.exadel.com
Jul 29, 2009 · Charles Ditzel
Max
http://mkblog.exadel.com
Jul 16, 2009 · Max Katz
Jun 22, 2009 · Max Katz
Jun 22, 2009 · Max Katz
Jun 22, 2009 · Max Katz
Jun 12, 2009 · Max Katz
May 19, 2009 · Max Katz
May 19, 2009 · admin
May 19, 2009 · admin
May 19, 2009 · admin
May 19, 2009 · Max Katz
May 19, 2009 · Max Katz
May 19, 2009 · Max Katz
May 19, 2009 · admin
Sorry, I don't understand the problem. Where is the input field? I'm also surpised that this works, that's JSP with Facelets...:
<ui:include src="MyModalPanel.jsp" />
May 19, 2009 · admin
Sorry, I don't understand the problem. Where is the input field? I'm also surpised that this works, that's JSP with Facelets...:
<ui:include src="MyModalPanel.jsp" />
May 19, 2009 · admin
Sorry, I don't understand the problem. Where is the input field? I'm also surpised that this works, that's JSP with Facelets...:
<ui:include src="MyModalPanel.jsp" />
May 19, 2009 · Max Katz
Sorry, I don't understand the problem. Where is the input field? I'm also surpised that this works, that's JSP with Facelets...:
<ui:include src="MyModalPanel.jsp" />
May 19, 2009 · Max Katz
Sorry, I don't understand the problem. Where is the input field? I'm also surpised that this works, that's JSP with Facelets...:
<ui:include src="MyModalPanel.jsp" />
May 19, 2009 · Max Katz
Sorry, I don't understand the problem. Where is the input field? I'm also surpised that this works, that's JSP with Facelets...:
<ui:include src="MyModalPanel.jsp" />
May 05, 2009 · Max Katz
Let's try this file. Here is what you need to do:
Download the template.
In Eclipse:
May 05, 2009 · admin
May 05, 2009 · Max Katz
May 05, 2009 · admin
May 05, 2009 · admin
May 05, 2009 · Max Katz
May 05, 2009 · Max Katz
May 05, 2009 · admin
May 05, 2009 · admin
May 05, 2009 · admin
May 05, 2009 · admin
May 05, 2009 · Max Katz
May 05, 2009 · Max Katz
May 05, 2009 · Max Katz
May 05, 2009 · Max Katz
May 05, 2009 · admin
May 05, 2009 · admin
May 05, 2009 · admin
May 05, 2009 · admin
May 05, 2009 · Max Katz
May 05, 2009 · Max Katz
May 05, 2009 · Max Katz
May 05, 2009 · Max Katz
Apr 27, 2009 · James Sugrue
We (Exadel) are working on JavaFX plug-in for Eclipse, see here and here. We are planning version 1.0 for JavaOne. As for validation and connecting to popular back ends such as JBoss Seam and Spring we have Flamingo. It uses Hessian protocol.
Max
http://mkblog.exadel.com
Apr 27, 2009 · James Sugrue
We (Exadel) are working on JavaFX plug-in for Eclipse, see here and here. We are planning version 1.0 for JavaOne. As for validation and connecting to popular back ends such as JBoss Seam and Spring we have Flamingo. It uses Hessian protocol.
Max
http://mkblog.exadel.com
Apr 27, 2009 · James Sugrue
We (Exadel) are working on JavaFX plug-in for Eclipse, see here and here. We are planning version 1.0 for JavaOne. As for validation and connecting to popular back ends such as JBoss Seam and Spring we have Flamingo. It uses Hessian protocol.
Max
http://mkblog.exadel.com
Apr 11, 2009 · Max Katz
Apr 09, 2009 · admin
Apr 09, 2009 · admin
Apr 09, 2009 · admin
Apr 09, 2009 · Max Katz
Apr 09, 2009 · Max Katz
Apr 09, 2009 · Max Katz
Apr 09, 2009 · admin
Apr 09, 2009 · admin
Apr 09, 2009 · admin
Apr 09, 2009 · Max Katz
Apr 09, 2009 · Max Katz
Apr 09, 2009 · Max Katz
Mar 16, 2009 · Max Katz
Mar 16, 2009 · Max Katz
Mar 16, 2009 · Max Katz
Mar 13, 2009 · Mihai Diac
I will second that. For JavaFX to succeed it has to be used for "fun" stuff , but even more importantly for enterprise applications. Adobe has done a great job pushing Flex into the Enterprise. So far majority of JavaFX examples show how shapes move around - not very useful for the enterprise.
Max
http://mkblog.exadel.com
Mar 13, 2009 · Mihai Diac
I will second that. For JavaFX to succeed it has to be used for "fun" stuff , but even more importantly for enterprise applications. Adobe has done a great job pushing Flex into the Enterprise. So far majority of JavaFX examples show how shapes move around - not very useful for the enterprise.
Max
http://mkblog.exadel.com
Mar 13, 2009 · Mihai Diac
I will second that. For JavaFX to succeed it has to be used for "fun" stuff , but even more importantly for enterprise applications. Adobe has done a great job pushing Flex into the Enterprise. So far majority of JavaFX examples show how shapes move around - not very useful for the enterprise.
Max
http://mkblog.exadel.com
Mar 13, 2009 · Sergey Surikov
I will second that. For JavaFX to succeed it has to be used for "fun" stuff , but even more importantly for enterprise applications. Adobe has done a great job pushing Flex into the Enterprise. So far majority of JavaFX examples show how shapes move around - not very useful for the enterprise.
Max
http://mkblog.exadel.com
Mar 13, 2009 · Sergey Surikov
I will second that. For JavaFX to succeed it has to be used for "fun" stuff , but even more importantly for enterprise applications. Adobe has done a great job pushing Flex into the Enterprise. So far majority of JavaFX examples show how shapes move around - not very useful for the enterprise.
Max
http://mkblog.exadel.com
Mar 13, 2009 · Sergey Surikov
I will second that. For JavaFX to succeed it has to be used for "fun" stuff , but even more importantly for enterprise applications. Adobe has done a great job pushing Flex into the Enterprise. So far majority of JavaFX examples show how shapes move around - not very useful for the enterprise.
Max
http://mkblog.exadel.com
Mar 09, 2009 · Matthew Schmidt
Mar 09, 2009 · Max Katz
Mar 09, 2009 · Max Katz
Mar 09, 2009 · Max Katz
Mar 09, 2009 · Max Katz
Mar 09, 2009 · Matthew Schmidt
Mar 09, 2009 · Matthew Schmidt
Mar 09, 2009 · Matthew Schmidt
Mar 07, 2009 · admin
@TomSch: You might have an error in Faces config file, can you post it here? As for the zip file, I'll try to upload a new or post a link on my blog.
Mar 07, 2009 · admin
@TomSch: You might have an error in Faces config file, can you post it here? As for the zip file, I'll try to upload a new or post a link on my blog.
Mar 07, 2009 · admin
@TomSch: You might have an error in Faces config file, can you post it here? As for the zip file, I'll try to upload a new or post a link on my blog.
Mar 07, 2009 · Max Katz
@TomSch: You might have an error in Faces config file, can you post it here? As for the zip file, I'll try to upload a new or post a link on my blog.
Mar 07, 2009 · Max Katz
@TomSch: You might have an error in Faces config file, can you post it here? As for the zip file, I'll try to upload a new or post a link on my blog.
Mar 07, 2009 · Max Katz
@TomSch: You might have an error in Faces config file, can you post it here? As for the zip file, I'll try to upload a new or post a link on my blog.
Feb 23, 2009 · admin
It first searches the current naming container (form), then it searches the parent container and so on. At some point it will reach the root and search from there.
You can see the full algorithm here: org.ajax4jsf.renderkit.RendererUtils.findComponentFor(UIComponent, String)
Feb 23, 2009 · admin
It first searches the current naming container (form), then it searches the parent container and so on. At some point it will reach the root and search from there.
You can see the full algorithm here: org.ajax4jsf.renderkit.RendererUtils.findComponentFor(UIComponent, String)
Feb 23, 2009 · admin
It first searches the current naming container (form), then it searches the parent container and so on. At some point it will reach the root and search from there.
You can see the full algorithm here: org.ajax4jsf.renderkit.RendererUtils.findComponentFor(UIComponent, String)
Feb 23, 2009 · Max Katz
It first searches the current naming container (form), then it searches the parent container and so on. At some point it will reach the root and search from there.
You can see the full algorithm here: org.ajax4jsf.renderkit.RendererUtils.findComponentFor(UIComponent, String)
Feb 23, 2009 · Max Katz
It first searches the current naming container (form), then it searches the parent container and so on. At some point it will reach the root and search from there.
You can see the full algorithm here: org.ajax4jsf.renderkit.RendererUtils.findComponentFor(UIComponent, String)
Feb 23, 2009 · Max Katz
It first searches the current naming container (form), then it searches the parent container and so on. At some point it will reach the root and search from there.
You can see the full algorithm here: org.ajax4jsf.renderkit.RendererUtils.findComponentFor(UIComponent, String)
Feb 16, 2009 · admin
Feb 16, 2009 · admin
Feb 16, 2009 · Max Katz
Feb 16, 2009 · Max Katz
Feb 16, 2009 · admin
Feb 16, 2009 · admin
Feb 16, 2009 · admin
Feb 16, 2009 · admin
Feb 16, 2009 · Max Katz
Feb 16, 2009 · Max Katz
Feb 16, 2009 · Max Katz
Feb 16, 2009 · Max Katz
Feb 04, 2009 · Max Katz
Feb 03, 2009 · Matthew Schmidt
Feb 03, 2009 · Max Katz
Jan 30, 2009 · admin
Jan 30, 2009 · Max Katz
Jan 29, 2009 · admin
Jan 29, 2009 · Max Katz
Jan 23, 2009 · admin
Jan 23, 2009 · Max Katz
Jan 22, 2009 · admin
That's the intended behavior. a4j:keepAlive tag is used to keep objects alive for longer than request but less than session (basically a very simple idea of a conversation, like in Seam). The bean pointed to by a4j:keepAlive tag is added to the UI component tree and is saved with the tree (either in session or client, depending on javax.faces.STATE_SAVING_METHOD param). When the UI tree is restored, the bean placed back in request scope with all its values. Hope this helps.
Now, I'm not sure about memory overflow - are you talking about a memory leak?
Jan 22, 2009 · Max Katz
That's the intended behavior. a4j:keepAlive tag is used to keep objects alive for longer than request but less than session (basically a very simple idea of a conversation, like in Seam). The bean pointed to by a4j:keepAlive tag is added to the UI component tree and is saved with the tree (either in session or client, depending on javax.faces.STATE_SAVING_METHOD param). When the UI tree is restored, the bean placed back in request scope with all its values. Hope this helps.
Now, I'm not sure about memory overflow - are you talking about a memory leak?
Dec 16, 2008 · admin
Whoops, never mind.
I have one of these unzipping programs that won't zip all things out by default if you have an item highlighted, so it seems I missed the lib/ folder!
[/quote]
Glad it's working.
Dec 16, 2008 · admin
Whoops, never mind.
I have one of these unzipping programs that won't zip all things out by default if you have an item highlighted, so it seems I missed the lib/ folder!
[/quote]
Glad it's working.
Dec 16, 2008 · admin
Whoops, never mind.
I have one of these unzipping programs that won't zip all things out by default if you have an item highlighted, so it seems I missed the lib/ folder!
[/quote]
Glad it's working.
Dec 16, 2008 · Max Katz
Whoops, never mind.
I have one of these unzipping programs that won't zip all things out by default if you have an item highlighted, so it seems I missed the lib/ folder!
[/quote]
Glad it's working.
Dec 16, 2008 · Max Katz
Whoops, never mind.
I have one of these unzipping programs that won't zip all things out by default if you have an item highlighted, so it seems I missed the lib/ folder!
[/quote]
Glad it's working.
Dec 16, 2008 · Max Katz
Whoops, never mind.
I have one of these unzipping programs that won't zip all things out by default if you have an item highlighted, so it seems I missed the lib/ folder!
[/quote]
Glad it's working.
Dec 08, 2008 · admin
Dec 08, 2008 · Max Katz
Dec 05, 2008 · admin
Hi. What version of JBoss AS are you using? I am using JBoss 4.2, and I cannot get the @PostConstruct method to fire on a simple managed bean. There are no EJBs involved. Just a simple pojo, configured as a managed bean, with one annotated method that has @PostConstruct. I have tried with both request and session scoped beans, but the message that I print to the log never shows up.
Thanks so much.
[/quote]
I used Tomcat 6.
Dec 05, 2008 · admin
Hi. What version of JBoss AS are you using? I am using JBoss 4.2, and I cannot get the @PostConstruct method to fire on a simple managed bean. There are no EJBs involved. Just a simple pojo, configured as a managed bean, with one annotated method that has @PostConstruct. I have tried with both request and session scoped beans, but the message that I print to the log never shows up.
Thanks so much.
[/quote]
I used Tomcat 6.
Dec 05, 2008 · admin
Hi. What version of JBoss AS are you using? I am using JBoss 4.2, and I cannot get the @PostConstruct method to fire on a simple managed bean. There are no EJBs involved. Just a simple pojo, configured as a managed bean, with one annotated method that has @PostConstruct. I have tried with both request and session scoped beans, but the message that I print to the log never shows up.
Thanks so much.
[/quote]
I used Tomcat 6.
Dec 05, 2008 · admin
Hi. What version of JBoss AS are you using? I am using JBoss 4.2, and I cannot get the @PostConstruct method to fire on a simple managed bean. There are no EJBs involved. Just a simple pojo, configured as a managed bean, with one annotated method that has @PostConstruct. I have tried with both request and session scoped beans, but the message that I print to the log never shows up.
Thanks so much.
[/quote]
I used Tomcat 6.
Dec 05, 2008 · Max Katz
Hi. What version of JBoss AS are you using? I am using JBoss 4.2, and I cannot get the @PostConstruct method to fire on a simple managed bean. There are no EJBs involved. Just a simple pojo, configured as a managed bean, with one annotated method that has @PostConstruct. I have tried with both request and session scoped beans, but the message that I print to the log never shows up.
Thanks so much.
[/quote]
I used Tomcat 6.
Dec 05, 2008 · Max Katz
Hi. What version of JBoss AS are you using? I am using JBoss 4.2, and I cannot get the @PostConstruct method to fire on a simple managed bean. There are no EJBs involved. Just a simple pojo, configured as a managed bean, with one annotated method that has @PostConstruct. I have tried with both request and session scoped beans, but the message that I print to the log never shows up.
Thanks so much.
[/quote]
I used Tomcat 6.
Dec 05, 2008 · Max Katz
Hi. What version of JBoss AS are you using? I am using JBoss 4.2, and I cannot get the @PostConstruct method to fire on a simple managed bean. There are no EJBs involved. Just a simple pojo, configured as a managed bean, with one annotated method that has @PostConstruct. I have tried with both request and session scoped beans, but the message that I print to the log never shows up.
Thanks so much.
[/quote]
I used Tomcat 6.
Dec 05, 2008 · Max Katz
Hi. What version of JBoss AS are you using? I am using JBoss 4.2, and I cannot get the @PostConstruct method to fire on a simple managed bean. There are no EJBs involved. Just a simple pojo, configured as a managed bean, with one annotated method that has @PostConstruct. I have tried with both request and session scoped beans, but the message that I print to the log never shows up.
Thanks so much.
[/quote]
I used Tomcat 6.
Nov 20, 2008 · admin
Nov 20, 2008 · Max Katz
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · admin
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · Max Katz
Nov 19, 2008 · admin
Do you have this tag on the page:
Nov 19, 2008 · Max Katz
Do you have this tag on the page:
Nov 17, 2008 · admin
Nov 17, 2008 · admin
Nov 17, 2008 · admin
Nov 17, 2008 · Max Katz
Nov 17, 2008 · Max Katz
Nov 17, 2008 · Max Katz
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · admin
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · Max Katz
Oct 27, 2008 · admin
Try this:
<rich:column sortBy="#{user.name}" sortBy="#{user.name}">
<f:facet name="header">
<h:outputText value="User Name"/>
</f:facet>
<h:outputText id="name" value="#{user.name}"/>
</rich:column>
Oct 27, 2008 · Max Katz
Try this:
<rich:column sortBy="#{user.name}" sortBy="#{user.name}">
<f:facet name="header">
<h:outputText value="User Name"/>
</f:facet>
<h:outputText id="name" value="#{user.name}"/>
</rich:column>
Oct 21, 2008 · admin
Hi Alan,
I need to look at the source code (JSF page, bean) as this is outside the scope of the article. It's very difficult to say what could be the problem. Send me an email, I willl take a look at it.
Max
Oct 21, 2008 · Max Katz
Hi Alan,
I need to look at the source code (JSF page, bean) as this is outside the scope of the article. It's very difficult to say what could be the problem. Send me an email, I willl take a look at it.
Max
Oct 17, 2008 · admin
Did you add the RichFaces template to JBoss Tools? If not, the steps are under Project Templates section.
Oct 17, 2008 · Max Katz
Did you add the RichFaces template to JBoss Tools? If not, the steps are under Project Templates section.
Oct 01, 2008 · admin
Oct 01, 2008 · Max Katz
Sep 30, 2008 · admin
Sep 30, 2008 · Max Katz
Sep 25, 2008 · admin
JBoss AS already ships with JSF runtime, at the same time, my template also has JSF runtime as I was running the application in Tomcat. The exception indicates a classloading conflict with existing libraries.
There is a detailed article on using RichFaces in a portal:
http://www.infoq.com/articles/jsf-ajax-seam-portlets-pt-1
http://www.infoq.com/articles/jsf-ajax-seam-portlets-pt-2
http://www.infoq.com/articles/jsf-ajax-seam-portlets-pt-3
Hope this helps.
Sep 25, 2008 · Max Katz
JBoss AS already ships with JSF runtime, at the same time, my template also has JSF runtime as I was running the application in Tomcat. The exception indicates a classloading conflict with existing libraries.
There is a detailed article on using RichFaces in a portal:
http://www.infoq.com/articles/jsf-ajax-seam-portlets-pt-1
http://www.infoq.com/articles/jsf-ajax-seam-portlets-pt-2
http://www.infoq.com/articles/jsf-ajax-seam-portlets-pt-3
Hope this helps.
Sep 01, 2008 · admin
Sep 01, 2008 · admin
Sep 01, 2008 · Max Katz
Sep 01, 2008 · Max Katz
Sep 01, 2008 · admin
Small typo on page 3:
To make this bean a managed bean, we need to register it in a JSF configuration file.
- Keep the scope request
- For Class, enter the bean’s full Java class name, sample.beans.UserBean -> example.beans.UserBean
[/quote]
Thanks, I'll update the code.
Sep 01, 2008 · admin
Small typo on page 3:
To make this bean a managed bean, we need to register it in a JSF configuration file.
- Keep the scope request
- For Class, enter the bean’s full Java class name, sample.beans.UserBean -> example.beans.UserBean
[/quote]
Thanks, I'll update the code.
Sep 01, 2008 · admin
Small typo on page 3:
To make this bean a managed bean, we need to register it in a JSF configuration file.
- Keep the scope request
- For Class, enter the bean’s full Java class name, sample.beans.UserBean -> example.beans.UserBean
[/quote]
Thanks, I'll update the code.
Sep 01, 2008 · admin
Small typo on page 3:
To make this bean a managed bean, we need to register it in a JSF configuration file.
- Keep the scope request
- For Class, enter the bean’s full Java class name, sample.beans.UserBean -> example.beans.UserBean
[/quote]
Thanks, I'll update the code.
Sep 01, 2008 · Max Katz
Small typo on page 3:
To make this bean a managed bean, we need to register it in a JSF configuration file.
- Keep the scope request
- For Class, enter the bean’s full Java class name, sample.beans.UserBean -> example.beans.UserBean
[/quote]
Thanks, I'll update the code.
Sep 01, 2008 · Max Katz
Small typo on page 3:
To make this bean a managed bean, we need to register it in a JSF configuration file.
- Keep the scope request
- For Class, enter the bean’s full Java class name, sample.beans.UserBean -> example.beans.UserBean
[/quote]
Thanks, I'll update the code.
Sep 01, 2008 · Max Katz
Small typo on page 3:
To make this bean a managed bean, we need to register it in a JSF configuration file.
- Keep the scope request
- For Class, enter the bean’s full Java class name, sample.beans.UserBean -> example.beans.UserBean
[/quote]
Thanks, I'll update the code.
Sep 01, 2008 · Max Katz
Small typo on page 3:
To make this bean a managed bean, we need to register it in a JSF configuration file.
- Keep the scope request
- For Class, enter the bean’s full Java class name, sample.beans.UserBean -> example.beans.UserBean
[/quote]
Thanks, I'll update the code.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · Max Katz
I don't know why you get that error message. Slightly different setup steps, but you can try using a template in this posting: http://mkblog.exadel.com/?p=119
I submitted all other changes (image, managed bean configuration, skin setup). The changes should be up shortly.
Aug 26, 2008 · admin
I just clicked on the template file and was able to download. What kind of message are you getting?
Please tell me what details are missing.
Please provide more details. If you are talking about the colors, I will update the article so you can try the same skin I'm using. Sorry about that.
Aug 26, 2008 · Max Katz
I just clicked on the template file and was able to download. What kind of message are you getting?
Please tell me what details are missing.
Please provide more details. If you are talking about the colors, I will update the article so you can try the same skin I'm using. Sorry about that.