Max Katz heads Developer Relations for Appery.io, a cloud-based mobile app platform. He loves trying out new and cool REST APIs in mobile apps. Max is the author of two books “Practical RichFaces” (Apress 2008, 2011), and is a frequent speaker at developer conferences. You can find out what Max is up to on his blog: mkblog.exadel.com and Twitter: @maxkatz. Max is a DZone MVB and is not an employee of DZone and has posted 82 posts at DZone. You can read more from them at their website. View Full User Profile

An Introduction To JBoss RichFaces

08.25.2008
| 427569 views |
  • submit to reddit

Application

Creating a new project

  1. Select File/New/JSF Project
  2. For the project name, enter “richfaces-start”
  3. For JSF environment, select JSF 1.2, Facelets, RichFaces
  4. For a template, select one based on the Tomcat version you are using
  5. Click Finish to create the project

Creating the model class

As we are dealing with users, we are going to create a user model class.
In the JavaSource directory, create an example.model.User Java class and notice the package name:

package example.model;

public class User {

@Override
public String toString() {
return name + " " + email;
}
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User(String name, String email) {
super();
this.name = name;
this.email = email;
}
}

 

The class is very simple. Our application will list one or more of these users. Next, we are going to create a managed bean. The managed bean will basically be a model for the user interface we will be building shortly.

Creating the managed bean

In JavaSource, create an example.beans.UserBean Java class. Again, pay attention to the package name:

package example.beans;

import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import example.model.User;

public class UserBean {

private List <User>users;

public List <User>getUsers() {
return users;
}

@PostConstruct
public void init () {

users = new ArrayList <User>();
users.add (new User("Joe", "joe@gmail.com"));
users.add (new User("Charley", "charley@ymail.com"));
users.add (new User("John", "john@hotmail.com"));
users.add (new User("Greg", "greg@gmail.com"));
users.add (new User("Prescila", "prescila@aol.com"));
}
}

 

This class is also simple. A list of five users is created and place inside an ArrayList. The @PostConstruct annotation is useful for initializing properties. It guarantees that the annotated method will only be called once when the bean is created.

To make this bean a managed bean, we need to register it in a JSF configuration file.

  1. Open WebContent/WEB-INF/face-config.xml
  2. Switch to the Tree view
  3. Select Managed Beans and click Add...
    - Keep the scope request
    - For Class, enter the bean’s full Java class name, example.beans.UserBean
    - For Name, enter or keep userBean
  4. Click Finish

We are ready to create the user interface.

Managed bean registration looks like this:

<managed-bean>
<managed-bean-name>userBean</managed-bean-name>
<managed-bean-class>example.beans.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

 

 

Legacy
Article Resources: 
Published at DZone with permission of Max Katz, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Yeray Rodriguez replied on Mon, 2009/07/06 - 7:53am

Hi,

I'm using this code on a seam project and it work properly, but, it doesn't work when the table datatable is sorted. I don't know how to get the row id after user has sorted the table. Now I use the position inside the List of elements I pass to the datatable.

thanks in advance

    private Set <Integer>rowsToUpdate;
public Set <Integer>getRowsToUpdate() {
if (rowsToUpdate == null)rowsToUpdate = new HashSet<Integer>();
return rowsToUpdate;
}

public void cambiarFavorito (CartItem cartItem) {

if (rowsToUpdate == null)rowsToUpdate = new HashSet<Integer>();
rowsToUpdate.clear();
int i = 0;
for (i = 0; i<resultList.size(); i++)
{
if (cartItem == resultList.get(i)){
rowsToUpdate.add(i);
break;
}
}
//CartItem cartItem = resultList.get(0);
if (cartItem.getFavorito()==true) cartItem.setFavorito(false);
else cartItem.setFavorito(true);
resultList.remove(i);
resultList.add(i,cartItem);

}

 

        <rich:dataTable
id="listaArticulos" value="#{catalogoVenta.resultList}"
var="articulo" style="width:100%;" ajaxKeys="#{catalogoVenta.rowsToUpdate}" >


<rich:column id='marca' sortBy="#{articulo.marca}">
<f:facet name="header">
<h:outputText value="Marca" />
</f:facet>
<h:outputText value="#{articulo.marca}" />
</rich:column>
                <rich:column width="15px" style="width:15px;">
<f:facet name="header">
<h:graphicImage value="/img/extra/noheart.png" rendered="#{!articulo.favorito}" title="Artículo no favorito" alt="Artículo no favorito" />
</f:facet>
<a4j:commandLink
actionListener="#{catalogoVenta.cambiarFavorito(articulo)}"
id="heart"
reRender="heart">
<h:graphicImage value="/img/extra/heart.png" rendered="#{articulo.favorito}" title="Artículo favorito" alt="Artículo favorito" />
<h:graphicImage value="/img/extra/noheart.png" rendered="#{!articulo.favorito}" title="Artículo no favorito" alt="Artículo no favorito" />
</a4j:commandLink>

</rich:column>

</rich:datatable>
 

sarah mark replied on Thu, 2009/08/13 - 4:57am


I must say great website. I have just googled it nice info out there.
Thanks,
Acne

James Bondy replied on Fri, 2009/08/28 - 2:43am in response to: Brian ray

It doesn't work to me too, can you upload this files again?

Thanks,

Levitra

Edwin William replied on Mon, 2009/09/07 - 2:16pm

:P

nabil esseme7 replied on Thu, 2009/10/01 - 10:24am

hi maxkatz and thank toy for your wonderful example,

i tried your code and this works fine until i want to add the modal panel and the save and close codes to the user.jsp page

i got this exception when i do that:

org.apache.jasper.JasperException: /user.jsp(22,4) The function component cannot be located with 
the specified prefix
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Validator$ValidateVisitor$1FVVisitor.visit(Validator.java:1495)
org.apache.jasper.compiler.ELNode$Function.accept(ELNode.java:129)
org.apache.jasper.compiler.ELNode$Nodes.visit(ELNode.java:200)
org.apache.jasper.compiler.ELNode$Visitor.visit(ELNode.java:242)
org.apache.jasper.compiler.ELNode$Root.accept(ELNode.java:56)
org.apache.jasper.compiler.ELNode$Nodes.visit(ELNode.java:200)
org.apache.jasper.compiler.Validator$ValidateVisitor.validateFunctions(Validator.java:1504)
org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1141)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:821)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:840)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:840)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:840)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:840)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:840)
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1736)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:183)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:473)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:141)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
org.ajax4jsf.Filter.doFilter(Filter.java:175)

 the content of my user.jsp is :

 

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="rich" uri="http://richfaces.org/rich"%>
<%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Gérer les salons de chat sms</title>
</head>
<body>
<f:view>
<h:form>
<rich:panel style="width:350px ;border:1; border-color:red">
<f:facet name="header">
Just some users
</f:facet>
<rich:dataTable value="#{userBean.users}" var="user">
<h:column>
<a4j:commandButton value="Edit" oncomplete="#{rich:component('useredit')}.show()"
reRender="userinfo">
<f:setPropertyActionListener value="#{user}"
target="#{userBean.selectedUser}" />
</a4j:commandButton>
</h:column>
<h:column>
<h:outputText id="name" value="#{user.name}" />
</h:column>
<h:column>
<h:outputText id="email" value="#{user.password}" />
</h:column>
</rich:dataTable>
</rich:panel>
</h:form>

<rich:modalPanel id="useredit">

<f:facet name="header"> User </f:facet>
<h:form>
<h:panelGrid id="userinfo">
<h:outputLabel for="nameInput" value="Name:" />
<h:inputText id="nameInput" value="#{userBean.selectedUser.name}" />
<h:outputLabel for="emailInput" value="Email:" />
<h:inputText id="emailInput"
value="#{userBean.selectedUser.password}" />
<h:panelGrid columns="2">
<a href="#" onclick="#{rich:component('useredit')}.hide();return false">Close </a>
<a4j:commandLink oncomplete="#{rich:component('useredit')}.hide();return false"> Save </a4j:commandLink>
</h:panelGrid>
</h:panelGrid>
</h:form>
</rich:modalPanel>
</f:view>
</body>
</html>

 

any ideas?

thans in advance

Ken Kham replied on Fri, 2009/10/02 - 6:53am

Hello, I just bought the "Practical RichFaces" hoping to learn Richfaces using "JBOSS Developer Studio 2.0.0GA. I downloaded the rcbook-templates.zip, unzip, and copy the contents (ie the lib and template directories) to the (..\studio\eclipse\plugins\org.jboss.tools.common.projecttemplates_3.0.0.GA-R200903141247-H4) directories. Everyting went as outlined in the book, even the warning that some files will be overwritten. I then follow the instructions on page 14 to create a new JSF project. But I tried to select the JSF environment, I could not see Richfaces anywhere??? Please let me know how I can get started on using Richfaces on "JBOSS Developer Studio", which, I would expect to support Richfaces out of the box:( Thank You

Max Katz replied on Thu, 2009/10/08 - 10:23pm in response to: Ken Kham

Did you create a new workspace after copying the templates?

Max Katz replied on Thu, 2009/10/08 - 10:23pm in response to: nabil esseme7

I can't tell you what the problem is, I only ran this application with Facelets.

john green green replied on Mon, 2009/10/26 - 3:28am

There is currently no option to time out keepAlive objects. nike shoes russiaYou can try do to it programmatically, it's an attribute of UIViewRoot. Seam converstations would be a better solution.

Dragan Mijailovic replied on Wed, 2009/10/28 - 8:07am

Can I use "keepAlive bean" for the <rich:tree/> component? For example:

<a4j:keepAlive name="someForm"/>

<rich:tree value="#{someForm.data}">

Max Katz replied on Wed, 2009/10/28 - 10:20pm in response to: Dragan Mijailovic

a4j:keepAlive is not dependent on any component, you can use it with any bean. You are basically getting page scope when using this tag.

Dragan Mijailovic replied on Thu, 2009/10/29 - 8:41am

Thanks a lot. The "keepAlive bean" or bean with page scope should implement the java.io.Serializable interface and because of that I asked about "keepAlive bean" and rich:tree component. I see that org.richfaces.model.TreeNode implements java.io.Serializable interface.

Now, my example with rich:tree is good except I can't know when a node is collapsed. I use this example http://stackoverflow.com/questions/1509962/is-there-an-event-for-collapsing-a-richtree-node

but state.isExpanded(key) is always true! 


 

ely towers replied on Tue, 2009/11/10 - 9:46pm

Im having problems with the  save button its saying that it cannot find save method on bean file

Nov 10, 2009 8:32:37 PM org.ajax4jsf.component.AjaxViewRoot processEvents
SEVERE: Error processing faces event for the component j_id11:j_id16
javax.faces.event.AbortProcessingException: /user.xhtml @50,36 actionListener="#{Usuario.save}": Method not found: example.beans.UserBean@b29c9d.save(javax.faces.event.ActionEvent)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:118)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:766)
at javax.faces.component.UICommand.broadcast(UICommand.java:372)
at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.el.MethodNotFoundException: /user.xhtml @50,36 actionListener="#{Usuario.save}": Method not found: example.beans.UserBean@b29c9d.save(javax.faces.event.ActionEvent)
at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:72)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99)
... 30 more

 here is user.xhtml

<h:form>
<rich:panel style="width:500px" >
<f:facet name="header">
Solo unos usuarios
</f:facet>
<rich:dataTable value="#{Usuario.users}" var="user" ajaxKeys="#{Usuario.rowsToUpdate}" >
<h:column> <h:outputText value="#{user.name}" id="name" />
</h:column>
<h:column> <h:outputText value="#{user.email}" id="email" />
</h:column>
<h:column >
<a4j:commandButton value="Edit"
oncomplete="#{rich:component('useredit')}.show()"
reRender="UserInfo">
<f:setPropertyActionListener value="#{user}" target="#{Usuario.selectedUser}"/>
</a4j:commandButton>
</h:column>
</rich:dataTable>
</rich:panel>
</h:form>
<a4j:keepAlive beanName="Usuario"/>
<rich:modalPanel id="useredit">
<f:facet name="header">
Usuario
</f:facet>
<h:form >
<h:panelGrid id="UserInfo">
<h:outputLabel value="Nombresito:" for="nameImput" />
<h:inputText id="nameImput" value="#{Usuario.selectedUser.name}"/>
<h:outputLabel value="Email" for="emailImput" />
<h:inputText id="emailImput" value="#{Usuario.selectedUser.email}"/>
<h:panelGrid columns="2">
<a href="#" onclick="#{rich:component('useredit')}.hide(); return false">
Close
</a>
<a4j:keepAlive beanName="Usuario"/>
<a4j:commandLink actionListener="#{Usuario.save}"
oncomplete="#{rich:component('useredit')}.hide()"
reRender="name,email">
Save
</a4j:commandLink>
</h:panelGrid>
</h:panelGrid>
</h:form>
</rich:modalPanel>
and here is the bean
package example.beans;

import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.annotation.PostConstruct;
import example.model.User;

public class UserBean {

private List<User>users;
private User selectedUser;
private Set<Integer>rowsToUpdate;



public Set<Integer> getRowsToUpdate() {
return rowsToUpdate;
}


public void save (ActionEvent event){
rowsToUpdate.clear();
rowsToUpdate.add(users.indexOf(selectedUser));
}

public List<User>getUsers(){
return users;
}




public User getSelectedUser() {
return selectedUser;
}

public void setSelectedUser(User selectedUser) {
this.selectedUser = selectedUser;
}



@PostConstruct
public void init(){
users=new ArrayList<User>();
users.add(new User("Joe", "joe@gmail.com"));
users.add(new User("Charley", "charley@hotmail.com"));
users.add(new User("Jesus", "jesus@gmail.com"));
users.add(new User("fatim", "fatima@gmail.com"));
users.add(new User("Cris", "Cris@gmail.com"));
rowsToUpdate = new HashSet<Integer>();
}

 any ideas ?? thanks in advance :_)

Eskendir Mulu replied on Mon, 2009/11/16 - 2:18pm

Is there an out of the box solution to filter tree objects, just like <rich:dtatTable>? if there is none, how would you go about implementing this fuctionality. I'm trying to implement help page.

 

thanks

Eskendir Mulu replied on Mon, 2009/11/16 - 2:35pm

Is there an out of the box solution to filter tree objects, just like <rich:dtatTable>? if there is none, how would you go about implementing this fuctionality. I'm trying to implement help page.

Chhavi Jain replied on Fri, 2010/01/29 - 5:06am

What are the two themes which we can use in<rich:editor>?

 If i use advanced theme then it displays buttons which i have not specified in configuration file,else it doesnt display specified buttons.Please tell me y?

Sami Meddeb replied on Wed, 2010/03/10 - 1:53pm in response to: marius batrinu

pleaseeeeee can some one help me to edit a row in my rich:dataTable?? i applied this work of xadel, but doesn't work for me !!! i am blocked in my studie project. Thanks in advence

Shilpa Reddy replied on Mon, 2010/12/06 - 5:51pm

I was trying to test this sample application and ran into several issues:
1. When I click edit in the dataTable the Model Panel pops up but it not populated .
2. It throws an on the below line in the modal Panel
h:inputText id="nameInput" value="#{userBean.selectedUser.name}"
Error:
javax.el.PropertyNotFoundException: /user.xhtml @55,81 value="#{userBean.selectedUser.name}": Target Unreachable, 'selectedUser' returned null
.....
Any help is much appreciated.
Thanks!

Sarwo Edi Wibowo replied on Tue, 2010/12/28 - 11:14pm

Hi Max, I'm trying your tutorial, really good stuff. Anyway, how to manage so can running on IE 8? Anyway, if you don't mind, give me your strategy to be master like you now. :) Thanks Max.

Peter Sule replied on Wed, 2011/01/05 - 8:26am

Hi all! I also had the problem with the save button on the modal panel. The solution for me was to replace the import java.awt.event.ActionEvent; to import javax.faces.event.ActionEvent; in the userBean.java clas. After saving everything and restarting the server, everything is working fine. Hope it helps! Peter

Max Katz replied on Thu, 2011/01/27 - 12:39pm in response to: Sarwo Edi Wibowo

It should work in IE8 - there is nothing special you need to do.

Max Katz replied on Thu, 2011/01/27 - 12:40pm in response to: Peter Sule

javax.faces.event.ActionEvent - is the correct class to use. It will not work with the Swing class (java.awt.*)

ezd ass replied on Thu, 2011/02/17 - 9:40am

hi, i couldn’t find file hierarchy which is similar to "\plugins\org.jboss.tools.common.projecttemplates_X.X.X. " there is no org.jboss.xxx... package so i couldn't insert the template in file which specified in the tutorial what shall i do? i followed each instruction in tutorial i found the expected result except project template step-3.

David May replied on Mon, 2011/04/11 - 11:33pm in response to: ezd ass

The problem may be with where the JBoss Tools unzipped. On a Mac it creates a separate eclipse directory (eclipse2) instead of adding the files to the existing eclipse directory.

David May replied on Mon, 2011/04/11 - 11:49pm in response to: Max Katz

Note I am having the same problem. JSF Project is not an option that shows up. Checking the Eclipse help, they say to create a JSF Project, one should create a New Dynamic Web Project. Is this a change perhaps since the book was published?

Max Katz replied on Mon, 2011/04/18 - 12:21pm in response to: David May

Make sure you have JBoss Tools installed. The option to create and export a JSF project is still there.

Majid Lotfi replied on Thu, 2011/05/12 - 1:38pm

Hi,

I downloaded eclipse but could not find the directory :

org.jboss.tools.common.projecttemplates_X.X.X

under plugins

 

can you please help.

thanks

Pat Meig replied on Thu, 2013/12/12 - 3:39pm

 I'm developing an application similar to this using a popup panel inplace of the modal panel.  After I click the Edit Button beside Joe the popuppanel is rendered before the query can complete and the name field is displayed as a blank.  If I close the popup and click the edit button for Bob the first name (Joe) is displayed.  It seems like the popup is rendered before the setItem can complete.  BTW setItem performs a several database queries which do not complete immediately.  Any hints how I can get the popup to wait until after the query completes?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.