Problem in obtaining collection of parameters onto my backing bean

Hi All,
I am working on a page 'browse.jsp' inside Alfresco CMS to implement a customization of mine wherin in the "details" view, inclusion of checkboxes besides the document names and their checking and submission will result in thier display in a subsequent JSP.
Here is my code snippet from line no 411 of 'browse.jsp'
BeanForSendMultiple.java is my backing bean.
<%-- Primary column for details view mode --%>
<a:column id="col10" primary="true" style="padding:2px;text-align:left" rendered="#{BrowseBean.browseViewMode == 'details'}">
<f:facet name="header">
<a:sortLink id="col10-sort" label="#{msg.name}" value="name" mode="case-insensitive" styleClass="header"/>
</f:facet>
<h:dataTable binding="#{BeanForSendMultiple.dataTable}"
                             value="#{BeanForSendMultiple.nameDetails}" var="loc">
                    <h:column>
                        <h:selectBooleanCheckbox value="#{loc.selected}"/>
                        <h:outputText value="#{loc.docContentName}"/>
                    </h:column>
                </h:dataTable>
<a:actionLink id="col10-act2" value="#{r.name}" href="#{r.url}" target="new" >
<f:param name="documentDetails" value="#{r.name}" />
</a:actionLink>
<r:lockIcon id="col10-lock" value="#{r.nodeRef}" align="absmiddle" />
<h:outputLabel id="col10-lang" value="#{r.lang}" styleClass="langCode" rendered="#{r.lang != null}" />
<r:nodeInfo id="col10-info" value="#{r.id}">
<h:graphicImage id="col10-img" url="/images/icons/popup.gif" styleClass="popupImage" width="16" height="16" />
</r:nodeInfo>
</a:column>Here is my backing bean BeanForSendMultiple
public class BeanForSendMultiple {
    private List<NamesDetails> nameDetails;
    private String []documentDetails;
    private HtmlDataTable dataTable;
    private NamesDetails nameFurtherDetails = new NamesDetails();
    public BeanForSendMultiple(){
        nameDetails = new ArrayList<NamesDetails>();   
           NamesDetails nameFurtherDetails1 = new NamesDetails(); 
           for(int k=0;k<=documentDetails.length;k++){
               nameFurtherDetails1.setDocContentName(documentDetails[k]);                  
           nameDetails.add(nameFurtherDetails1);
    public HtmlDataTable getDataTable() {
        return dataTable;
    public void setDataTable(HtmlDataTable dataTable) {
        this.dataTable = dataTable;
     public List<NamesDetails> getNameDetails() {
        return nameDetails;
       public void setNameDetails(List<NamesDetails> nameDetails) {
        this.nameDetails = nameDetails;
       public String submit(){
        Iterator iterator = nameDetails.iterator();
        while (iterator.hasNext())
            nameFurtherDetails = (NamesDetails)iterator.next();
            System.out.print(nameFurtherDetails.isSelected());
            System.out.print(nameFurtherDetails.getDocContentName());
        return "dataTableCheckBox";
     public String[] getDocumentDetails() {
       return documentDetails;
       public void setDocumentDetails(String documentDetails[]) {
        this.documentDetails = documentDetails;
}and here are the getters and setters for the document
public class NamesDetails implements Serializable
    private static final long serialVersionUID = 7526471155622776147L;
    private boolean selected;
    private String docContentName;
    public boolean isSelected() {
        return selected;
     public void setSelected(boolean selected) {
        this.selected = selected;
     public String getDocContentName() {
       return docContentName;
       public void setDocContentName(String docContentName) {
        this.docContentName = docContentName;
}But on running the application i am getting the following stack trace: The issue being a NullPointer exception in obtaining documentDetails.length from the BeanForSendMultiple
javax.faces.FacesException: An exception occurred processing JSP page /jsp/browse/browse.jsp at line 430
427: <a:sortLink id="col10-sort" label="#{msg.name}" value="name" mode="case-insensitive" styleClass="header"/>
428: </f:facet>
429:
430: <h:dataTable binding="#{BeanForSendMultiple.dataTable}"
431: value="#{BeanForSendMultiple.nameDetails}" var="loc">
432: <h:column>
433: <h:selectBooleanCheckbox value="#{loc.selected}"/>
Stacktrace:
caused by:
org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/browse/browse.jsp at line 430
427: <a:sortLink id="col10-sort" label="#{msg.name}" value="name" mode="case-insensitive" styleClass="header"/>
428: </f:facet>
429:
430: <h:dataTable binding="#{BeanForSendMultiple.dataTable}"
431: value="#{BeanForSendMultiple.nameDetails}" var="loc">
432: <h:column>
433: <h:selectBooleanCheckbox value="#{loc.selected}"/>
Stacktrace:
caused by:
javax.faces.el.EvaluationException: Cannot get value for expression '#{BeanForSendMultiple.dataTable}'
caused by:
java.lang.NullPointerException
Hide Details
javax.faces.FacesException: An exception occurred processing JSP page /jsp/browse/browse.jsp at line 430
427: <a:sortLink id="col10-sort" label="#{msg.name}" value="name" mode="case-insensitive" styleClass="header"/>
428: </f:facet>
429:
430: <h:dataTable binding="#{BeanForSendMultiple.dataTable}"
431: value="#{BeanForSendMultiple.nameDetails}" var="loc">
432: <h:column>
433: <h:selectBooleanCheckbox value="#{loc.selected}"/>
Caused by: java.lang.NullPointerException
at org.alfresco.web.bean.BeanForSendMultiple.<init>(BeanForSendMultiple.java:108)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
.....Could any one please guide me on my approach where i am missing out.
Thank You

You can use:
  public Object resolveExpression(String expression)
    FacesContext ctx = getFacesContext();
    Application app = ctx.getApplication();
    ValueBinding bind = app.createValueBinding(expression);
    return bind.getValue(ctx);
  }and
BindingContainer bc = (BindingContainer) resolveExpression("#{bindings}");John

Similar Messages

  • Problem in setting header for a panelgrid in backing bean

    Hi , this is urgent... pls...
    Actually my problem is to set header for a panelgrid. I am generating panelgrid component in the backing bean itself , there i need to set header for that panelgrid.
    Here is some sample code which i have written pls let me know whether any problem in this code or let me know whether there is any method possible other than this.
    Code:
    Application application=FacesContext.getCurrentInstance().getApplication();
    keyFeaturesGrid = (HtmlPanelGrid) application.createComponent (HtmlPanelGrid.COMPONENT_TYPE);
    keyFeaturesGrid.setColumns(4);
    keyFeaturesGrid.setColumnClasses("subColumn");     
    FacetTag facetTag=new FacetTag();
    facetTag.setName("header");
    HtmlOutputText facetText=new HtmlOutputText();
    facetText.setValue("Key Features");
    facetTag.setValue("value",facetText);
    keyFeaturesGrid.getChildren().add(facetTag);
    i am calling this method in constructor.. if i place that facetTag code part in my method... i am getting an error while instantiating the constructor...
    waiting for solution...
    Thanks in advance...

    Hai...
    I got it...
    Here i am posting the solution which i got...
    no need to think this much ... it is very simple... let me share the solution here...
    Instead of creating FacetTag object u can do this like this...
    HrmlPanelGrid panelGrid=new HtmlPanelGrid();
    HtmlOutputText headerText=new HtmlOutputText();
    headerText.setValue("Header For The Grid");
    panelGrid.getFacets().put("header",headerText);
    u r always welcome to send any suggestions...
    and also one doubt... how to use JSF core tag verbatim in backing bean

  • Button in Bex Analyser 7.0 - problem with setting up Static Parameters

    Hello,
    I know a similar problem has been discussed here already, but I am still having problems with setting up Static Parameters of my Button in BEx Analyser 7.0, so that I can pass Variable values from that button to my query.
    This is what I do - in Static Parameters of my Button I set the following values:
    Name                          Index          Value
    DATA_PROVIDER        0               DP_1
    CMD                             0               PROCESS_VARIABLES
    SUBCMD                      0               VAR_SUBMIT
    VAR_NAME                 0               0RMA_FIP
    VAR_VALUE               0               004/2010
    As a result, I would like the value 004/2010 to be passed to variable 0RMA_FIP (which is mandatory) and the query to be executed with that value. For some reason, however, the value is not passed correctly, and instead the variable is filled with a blank or not filled at all, and I am getting a message "Specifiy value for variable Fiscal year/period". What do I do wrong?
    Just to give you a broader picture - I would like to later use this logic to pass more than one variables into a query, including a hierarchy node, and read the values from an Excel worksheet - however, after many attempts to do so, I started playing with just one variable to figure out what the problem was.
    I have already seen the following two threads and SAP notes on passing variable values from the button:
    Re: Button in BEx Analyzer 7.0
    Re: How to set variables values via VBA.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f0881371-78a1-2910-f0b8-af3e184929be?quicklink=index&overridelayout=true
    Can anyone please advise?
    Cheers,
    AL

    I managed to figure it out myself!
    Instead of VAR_VALUE I need to enter VAR_VALUE_EXT, and it works fine.
    I will mark this thread as "answered".

  • Problem in  using function module parameters in abap program

    i want to use the coding present in on one of the function module 'AS_API_INFOSTRUC_FIND'  i got the problem using the function module parameters in my abap program.
    these are the parameters inside fm
    ""Lokale Schnittstelle:
    *"       IMPORTING
    *"             VALUE(I_FIELDCAT) TYPE  AIND_FCAT
    *"             VALUE(I_FIELDS) TYPE  TABLE OPTIONAL
    *"             VALUE(I_OBLIGATORY_FIELDS) TYPE  TABLE OPTIONAL
    *"       EXPORTING
    *"             VALUE(E_INFOSTRUC) TYPE  AIND_DESC
    *"             REFERENCE(E_ALL_FIELDS) TYPE  TABLE
    *"             REFERENCE(E_MATCHING_FIELDS) TYPE  TABLE
    *"       EXCEPTIONS
    *"              NO_INFOSTRUC_FOUND
    i want to declare     E_ALL_FIELDS  parameter    in my abap program,
    i have declared as 
    data: E_ALL_FIELDS TYPE TABLE.
    but   the system throws error that
    'type of field 'TABLE'  is generic .no table line has been specified'.
    i want to use it in my abap program how can i declare in my abap program .

    You have to declare the table using any specific type.
    The type table in the FM is generic so you can pass any type you need.
    For instance:
    TYPES: BEGIN OF ty_fields,
             fieldname LIKE dfies-fieldname,
           END OF ty_fields,
    TYPES: TY_T_GLU1              LIKE GLU1                     OCCURS 0,
           ty_t_fields            type ty_fields                occurs 0.
      DATA: lt_info_struct_fields TYPE ty_t_fields WITH HEADER LINE,
            lt_matching_fields    TYPE ty_t_fields WITH HEADER LINE.
        CALL FUNCTION 'AS_API_INFOSTRUC_FIND'
             EXPORTING
                  i_fieldcat         = ft_fieldcat-fieldcat
                  i_fields           = ft_fields_filled[]
             IMPORTING
                  e_infostruc        = lv_info_struct_name
                  e_all_fields       = lt_info_struct_fields[]
                  e_matching_fields  = lt_matching_fields[]
             EXCEPTIONS
                  no_infostruc_found = 1.

  • Problem  in using COLLECT statment

    Hi experts,
    getting problem in using COLLECT statement.  attaching my code below.
    LOOP AT it_final1 INTO wa_final1.
         LOOP AT it_final INTO wa_final WHERE vagrp = wa_final1-vagrp AND verwmerkm = wa_final1-verwmerkm.
           wa_final1-anzwertg = wa_final-anzwertg.
           COLLECT wa_final1 INTO it_final1.
         ENDLOOP.
         CLEAR: wa_final1, wa_final.
       ENDLOOP.
    here , i want to use collect statement only for  "anzwertg" field from internal table. but 2 more fields also getting  compressed .
    attaching screen shot
    here, original_input and max fields also getting compressed.
    could anybody please help me out in this.
    Thanks in advance.
    Regards
    satish

    Hi satish....
    collect statement works based on char fields..
    by default it will taken char fields as a key fields .........
    if any char field is repeated then corresponding numc values will be added....
    other wise it will act as a APPEND statement......
    Here in ur code there is no char field then how it will caliculate that values...
    just check it once..
    Regards,
    Vamsi....

  • I have a problem projecting from a powerpoint presentation onto a projector ? can someone help....

    I have a problem projecting from a powerpoint presentation onto a projector ? can someone help....

    Hi Yogang,
    Unles I am mistaken, the USB to AV cables are only used to deliver an AV signal to the Mac (such as a DVD player, etc) to enable the AV to be recorded.
    If you want to transmit powerpoint to a projector, you need to use the displayport on the Mac. Once this is connected, the mac will automatically pick it up and set the projector up as a second monitor.
    Depending on the model Mac you are using and also the avaliable connections you have to the projector, will tell you the type on connector you need.
    These are DP to VGA, DP to DVI, DP to HDMI. The last one, if you have a mdern Mac, should also carry the audio signal to the projector.

  • How to obtain POST request parameters

    Does anyone know how to obtain POST request parameters after form submit like we can get GET parameters after form submission via {module_url, parameterName}?

    "garry.b" <[email protected]> wrote in
    message
    news:gnndbf$i2q$[email protected]..
    > Hi,
    >
    > When using AS3 to generate an HTTP POST request:
    >
    > var service:HTTPService = new HTTPService ();
    > service.url = "
    http://localhost:9090/service";
    > service.method = "post";
    > // service.request = {itemId: "12345"};
    > service.send ({itemId: "12345"});
    >
    > my CherryPy web server complains about unexpected body
    parameters:
    >
    > HTTPError: (400, 'Unexpected body parameters: itemId')
    >
    > Using Firebug's Network display, its Post tab shows the
    following content:
    >
    > Referer:
    http://localhost:8080/log/log-1.0-SNAPSHOT.swf
    > Content-type: application/x-www-form-urlencoded
    > Content-length: 12
    >
    > itemId=12345
    >
    > which looks very strange to me as I would expect the
    Referer, etc.,
    > request
    > headers to show up in the Request Headers section and
    not as POST body
    > content.
    > While this could be some Firebug issue, I think the
    request message is
    > really
    > formatted incorrectly. When the web server gets the
    request, it does
    > recognize
    > 'itemId' as a body parameter but then complains that
    it's unexpected.
    >
    > I've googled the error message, studied HTTPService
    examples, spent
    > several
    > hours playing with it and am stumped. Tracy Spratt
    suggested setting the
    > service 'request' to force a POST and I tried it but am
    getting the same
    > error.
    > How do I make a POST request? Can I get POST data into
    the message body?
    > Stick with URL parameters only?
    What happens if you post to the same service using an html
    form?

  • I installed the new software onto my windows computer and then couldn't open it.  I did the uninstall and reinstall and I am still getting the same  problem.  How can I get my itunes back?

    I installed the new itunes software onto my windows computer  and then couldn't oopen Itunes.  I did an uninstall and reinstall and still have the same problem.  How can I get my itunes back?

    It says " application failed because MSVCR80.dll is missing from computer and then when I click okay it says I tunes wan't installed correctly Please reinstall
    Many thanks, that's perfect. Try the following user tip with those ones:
    Troubleshooting issues with iTunes for Windows updates

  • ADF TUTORIAL: PROBLEMS WITH "Export Collection Action Listener"

    hello all,
    environment:
    windows xp
    jedev 11.1.1.3.0
    firefox 3.6.13
    tutorial: Developing Ajax-Based User Interfaces with JSF: An Introduction to ADF Faces Rich Client Components
    url: http://st-curriculum.oracle.com/obe/jdev/obe11jdev/ps1/adf_richclient/adfrichclient.htm
    mainstep: "working with menus"
    substep: number 5 "add collection action listener"
    until the step "working with menus" works everthing fine. after i added the collection action listener and saved my work, the webapplication will not open. i see only a blank page and no error message.
    when i delete the action listener works everything fine again.
    how can i fix this issue? thx to everyone.
    best regards
    gunnar

    I'm not sure if this is going to help anyone , but if you're stuck at that point of the tutorial , try to drop the "Export Collection Action Listener" onto the menuItem "Export To Excel" not under it;
    So the xml under the source tab should look something like this :
    <f:facet name="menus">
    <af:menu text="My Options" id="m2" detachable="true">
    <af:commandMenuItem text="Export To Excel" id="cmi1">
    <af:exportCollectionActionListener type="excelHTML"
    exportedId="t1"/>
    </af:commandMenuItem>
    <af:commandMenuItem text="Show Specials" id="cmi2">
    <af:showPopupBehavior popupId=":::p1"/>
    </af:commandMenuItem>
    </af:menu>
    Hope this helped somebody .

  • Obtaining Generics type parameters using reflection

    I have been trying to obtain the type parameters of a method using reflection. This is what I have done:
    getGenericTypeParameters(aMethod.getTypeParameters());
    private static String getGenericTypeParameters(TypeVariable genericParameters[])
           String returnName = new String();
                   if(genericParameters.length > 0)
                           returnName += "< ";
                           for(int i=0; i<genericParameters.length; i++)
                                   if(i > 0) returnName += ", ";
                                   returnName += genericParameters.getName();
    returnName += " >";
    return returnName;
    } This doesn't take care of the cases when the method is of the form  public static <T, V extends T> boolean isIn(T x, V[] y)
    and the type parameters I get using the method I've written is <T, V>
    Is there any workaround or a better way of doing it?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Have you consulted Angelika Langer's [Java Generics FAQs|http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html]?

  • Has anyone else had a problem with obtaining funds for replacement hard drive?, Has anyone else had a problem with obtaining funds for replacement hard drive?

    Has anyone else had a problem with obtaining funds for replacement hard drive?,  I have had difficulties obtaining replies as the funds appear to have gone astray and Apple aren't prepared to give me their bank details so my bank can try and locate them?

    Might thry this if you are in N. America. It is a escalated level of support:
    Apple Customer Relations 1-800-767-2775

  • Have a backing bean in request scope; need to access parameters sent to it

    I have a request scope backing bean in my app, 'projectBean'. This has a property called 'id'.
    /** in request scope in faces-config.xml */
    projectBean {
        id               // set by the param from the previous page
        downloadAction() // activated by commandlink, depends on id
    }There is another backing bean in session scope called 'projectListingBean', which has a dataTable that lists a bunch of projectBeans. In this 'projectListingBean', I can click on any row. That row, when clicked initializes a 'id' parameter, which is then passed to the new 'projectBean'. 'projectBean' then initializes itself based on the id.
    In the jsp page backed by 'projectBean', I also have a link to download something specific to that 'projectBean'. Naturally enough, I have a commandlink with actionBinding to a method in my 'projectBean', downloadXXXAction().
    The problem arises because the downloadXXX() method relies on a 'id'. Remember, this id was orinigally set 2 requests back from the datatable. Since the page backed by 'projectBean' is in request scope, the id is lost, and my method call doesn't work. I tried changing the scope of 'projectBean' to session, but JSF complains that I already setting the 'id' property as a param, I can't set the whole managed bean to something 'higher' like session.
    Of course, the ideal fix to this probelm would be the ability to have beans in page scope, but what other ways (hacks??) are there to get around this?

    Hi, I'm posting some code snippets if it helps with understanding the problem.
    faces-config.xml:
    <!-- PROJECTLISTINGBEAN -->
    <managed-bean>
         <managed-bean-name>projectListingBean</managed-bean-name>
         <managed-bean-scope>session</managed-bean-scope>
         <managed-property>
              <property-name>projectBeans</property-name>
              <property-class>java.util.List</property-class>
              <list-entries>
                   <value-class>
                        com.sun.sleuth.omcmweb.view.bean.ProjectBean
                   </value-class>
              </list-entries>
         </managed-property>
    </managed-bean>
    <!-- PROJECTBEAN -->
    <managed-bean>
         <managed-bean-name>projectBean</managed-bean-name>
         <managed-bean-class>
         </managed-bean-class>
         <managed-bean-scope>request</managed-bean-scope>
         <managed-property>
              <property-name>projectId</property-name>
              <property-class>java.lang.String</property-class>
              <value>#{param.projectId}</value>
         </managed-property>
    </managed-bean>projectlsting.jsp (page backed by projectListingBean)
    <h:dataTable value="#{projectListingBean.projectBeans}"
         var="projectBean" ...>
         <h:column>
              <f:facet name="header">
              </f:facet>
              <h:commandLink action="#{projectListingBean.viewProjectSUmmary}">
                   <h:outputText value="#{projectBean.projectId}" />
                   <f:param name="projectId" value="#{projectBean.projectId}" />
              </h:commandLink>
         </h:column>
    </h:dataTable>projectsummary.jsp (page backed by request scoped projectBean)
    <h:commandLink action="#{projectBean.assessmentAction}" value="..." />
    ...Flow:
    projectlisting.jsp (projectListingBean - session) -param id passed->
    projectsummary.jsp (projectBean - request) -commandLink clicked and id lost-->
    projectSummary.jsp (projectBean - request)

  • Can´t access my files on Creative Cloud. "Page temporarily unavailable. We will return soon." "We are working quickly to resolve the problem and apologize for the delay. Check back later or visit our website for status updates. In addition, you can get he

    Hello,
    For a few days I have been trying to access my files on Creative Cloud web without success. I´ve got this message only:
    "Page temporarily unavailable. We will return soon."
    "We are working quickly to resolve the problem and apologize for the delay.
    Check back later or visit our website for status updates.
    In addition, you can get help in the forums of the Creative Cloud.
    Thank you for understanding!"
    (I used Google Translate)
    Somebody help?

    You do not need ?&promoid=KRUVP at the end of the url but it should not matter.
    One thing to check is if your hosts file is modified. Open the Command Prompt and type: notepad %systemroot%\system32\drivers\etc\hosts
    This will open a read-only copy of your host file in Notepad. Are there any entries in this file regarding adobe.com?
    The other thing you can do is open the Developer Tools in the Chrome browser. On Windows press Ctrl + Shift to open them. Switch to the Network tab. Reload the page by pressing Ctrl + r. Check for any 4xx or 5xx errors which should be colored red.
    Post screenshots of your results or send me a private forum message with the information.

  • JSF Problem invoking backing bean method

    I want a backing bean method to be invoked when the submit button is clicked but for some strange reason the method is not getting invoked any Help in this regards would be great.
    I am able to properly get the values from database and display on the page , after the user types in some more additional information like password , hint question the form has to be submitted when clicked on the submit button..
    Register.jsp
    <body>
         <f:view>
         <h:graphicImage url="/header.jpg"></h:graphicImage>
               <br><h:form id="user">
                        <table>
                        <tr>
                             <td>
                                  <h:outputLabel for="" value="uUser Name:" styleClass="orderlabelcell"></h:outputLabel></td><td>
                                  <h:inputText onblur="JavaScript:doSubmit();" value="#{registerFormBean.userName}" id="userName"></h:inputText>
                             </td>
                        </tr>
                        <tr>     
                             <td>
                             <h:outputLabel for="" value="First Name:" styleClass="orderlabelcell"></h:outputLabel></td><td>
                             <h:inputText value="#{registerFormBean.firstName}" id="firstName"></h:inputText></td>
                        </tr>
                        <tr>     
                             <td><h:outputLabel for="" value="Middle Name:" styleClass="orderlabelcell"></h:outputLabel></td><td>
                             <h:inputText id="middleName" value="#{registerFormBean.middleName}"></h:inputText></td>
                        </tr>
                        <tr>     
                             <td><h:outputLabel for="" value="Last Name:" styleClass="orderlabelcell"></h:outputLabel></td><td>
                             <h:inputText id="lastName" value="#{registerFormBean.lastName}"></h:inputText></td>
                        </tr>
                        <tr>
                             <td>
                                  <h:outputLabel for="" value="Password:" styleClass="orderlabelcell"></h:outputLabel></td><td>
                                  <h:inputText id="password" value="#{registerFormBean.password}"></h:inputText>
                             </td>
                        </tr>
                        <tr>     
                             <td><h:outputLabel for="" value="Re-type Password:" styleClass="orderlabelcell"></h:outputLabel></td><td>
                             <h:inputText></h:inputText></td>
                        </tr>
                        <tr>     
                             <td><h:outputLabel for="" value="Password Hint Question:" styleClass="orderlabelcell"></h:outputLabel></td><td>
                             <h:inputTextarea id="hintQuestion" value="#{registerFormBean.hintQuestion}"></h:inputTextarea></td>
                        </tr>
                        <tr>     
                             <td><h:outputLabel for="" value="Password Hint Answer:" styleClass="orderlabelcell"></h:outputLabel></td><td>
                             <h:inputTextarea id="hintAnswer" value="#{registerFormBean.hintAnswer}"></h:inputTextarea></td>
                        </tr>
                        <tr>     
                             <td>
                                  <h:commandButton id="submit" value="Submit" type="submit" action="#{registerFormBean.saveUser}"/>
                                  <h:commandButton id="Reset" value="Reset" type="reset"/>
                                  </td>
                        </tr>
                        </table>
                   </h:form>
         </f:view>
    </body> 
    RegisterFormBean.java
      package services;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import dao.DatabaseHandler;
    import model.User;
    public class RegisterFormBean {
    User selectedUser;
    String userName;
    String firstName;
    String middleName;
    String lastName;
    String password;
    String hintQuestion;
    String hintAnswer;
    String errMsg;
    private DatabaseHandler dbHandle;
    public RegisterFormBean() {
         javax.faces.context.FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
         javax.faces.application.Application app = context.getApplication();
         dbHandle = (DatabaseHandler)app.createValueBinding("#{databaseHandler}").getValue(context);
    public void setUserDetails() {
         try{
              System.out.println("gettting Details for user: "+userName);
              selectedUser = (User)dbHandle.getUser(userName);
         catch (SQLException e) {
              errMsg = "Problem gettting records";
    public String getUserName() {
         if(null!=userName){
              setUserDetails();
         if(null!=selectedUser)
              return selectedUser.getLoginName();
         else
         return "";
    public void setUserName(String userName){
         this.userName = userName;
    public String getFirstName() {
         if(null!=selectedUser)
              return selectedUser.getFirstName();
         else
         return "";
    public void setFirstName(String firstName) {
         System.out.println("in setFirst name");
         this.firstName = firstName;
    public String getMiddleName() {
         if(null!=selectedUser)
              return selectedUser.getMiddleName();
         else
         return "";
    public void setMiddleName(String middleName) {
         System.out.println("in set middle name...");
         this.middleName = middleName;
    public String getLastName() {
         if(null!=selectedUser)
              return selectedUser.getLastName();
         else
         return "";
    public void setLastName(String lastName) {
         System.out.println("in set last name....");
         this.lastName = lastName;
    public String getPassword() {
         return password;
    public void setPassword(String password) {
         if(null!=password){
              System.out.println("$$$$$$$$$$$$ setting password.."+password);
              selectedUser.setPassword(password);
    public String getHintQuestion() {
         return hintQuestion;
    public void setHintQuestion(String hintQuestion) {
         if(null!=hintQuestion){
              System.out.println("#########  Hint Question "+hintQuestion);
              selectedUser.setHintQuestion(hintQuestion);
    public String getHintAnswer() {
         return hintAnswer;
    public void setHintAnswer(String hintAnswer) {
         if(null!=hintAnswer){
              System.out.println("@@@@@@@  Hint Answer"+hintAnswer);
              selectedUser.setHintQuestion(hintAnswer);
    public String saveUser(){
         String flag = "";
         System.out.println("IN registerUser Method....");
         try{
              if(null!=selectedUser){
                   flag = dbHandle.registerUser(setUserDefaults(selectedUser));
         catch(SQLException se){
         flag="fail";
         System.out.println("FAILED DUE TO THE EXCEPTION :- "+se.getMessage());
         errMsg = "Unable to Register the User...";
         return flag;
    public User setUserDefaults(User user){
         System.out.println("SETTING USER DEFAULTS.....");
         user.setActive(true);
         user.setLoginType("False");
         user.setCreatedUserName("SOMEUSERNAME");
         user.setSecIdFunctionGroup(17);
         user.setChallangeWord("CHANGE IT");
         user.setTrusted(false);
         user.setUserTypeIdTypeOf(1);
         user.setChangePwdNextLogin("False");
         user.setLoginIsDisabled(false);
         user.setPasswordNeverExpires(false);
         user.setThinWorkOrder(false);
         user.setCurrencyTypeId(2);
         return user;
    I am able to fetch the details from Database and display on the page so DAO is working properly hence not copying here
    faces-config.xml
      <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
                                  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
    <faces-config>
    <managed-bean>
      <managed-bean-name>databaseHandler</managed-bean-name>
      <managed-bean-class>dao.DatabaseHandler</managed-bean-class>
      <managed-bean-scope>application</managed-bean-scope>
    </managed-bean>
    <managed-bean>
      <managed-bean-name>registerFormBean</managed-bean-name>
      <managed-bean-class>services.RegisterFormBean</managed-bean-class>
      <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <navigation-rule>
      <from-view-id>/Register.jsp</from-view-id>
      <navigation-case>
       <from-outcome>success</from-outcome>
       <to-view-id>/Success.jsp</to-view-id>
      </navigation-case>
    </navigation-rule>
    </faces-config>

    A conversion or validation error may have been occurred. Add <h:messages/> to the page to note them all. If you're using at least Sun Mojarra 1.2, then you should be able to note them all in the application server logs.

  • Problem while invoking popup from backing bean

    I am invoking a popup from backing bean method.
    The same backing bean method has the business logic which depends on the data collected from popup(user enters some data on popup).
    So I need the business logic to be executed after popup comes up.
    The popup is coming after the execution of return statement in backing bean method . How do i make popup trigger at earlier point in the method.
    <af:commandToolbarButton text="#{corePostupgradeuiBundle.SIGN_OFF_MIG}"
    id="socb52"
    partialSubmit="true"
    actionListener="#{viewScope.signoffBean.signOffAgents}"
    partialTriggers="t3"/>
    public void signOffAgents(ActionEvent event) throws SQLException {
    DCBindingContainer bc =
    (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
    DCIteratorBinding summaryIter =
    bc.findIteratorBinding("Signoff1Iterator");
    showPopup("credentials"); //will get credential details from user and store in credential Bean
    //Following logic uses the data collected from popup
    EMCredentialReference credRef= credentialBean.getCredReference();
    submitJOb(credRef);
    public static void showPopup(String popupId) {
    FacesContext context = FacesContext.getCurrentInstance();
    StringBuilder script = new StringBuilder();
    script.append("AdfPage.PAGE.findComponent(\"").append(popupId).append("\").show();");
    ExtendedRenderKitService erks =
    Service.getService(context.getRenderKit(),
    ExtendedRenderKitService.class);
    erks.addScript(context, script.toString());
    UIComponent component = context.getViewRoot().findComponent(popupId);
    RequestContext.getCurrentInstance().addPartialTarget(component);
    }

    Well, your work flow is wrong.
    What you try to accomplish should work out of the box as
    1) user hit toolbar button
    2) this opens a popup "credentials" which have listeners for ok and cancel
    3) use fills in data in popup and hit ok or cancel
    4) one of the listeners gets fired
    5a) if OK listener you do your business logic
    5b) if cancel you do something else
    So all you have to do is the use a af:af:showPopupBehavioron the toolbar button, add a popup canel listener (if you need to act on canel) dependign on your popup design (dialog or simple button) add the appropriate listeners and in the listener method so your business logic.
    Timo

Maybe you are looking for