How to return control to a calling jsp

I want to know that can i include a jsp page in another and change the content of the included page whenever the user clicks on a button on the main jsp or the included jsp whatever the case maybe?? please help. thanks

The included page can access the request object from the main page, so on click of a buttun on the main page pass a parameter and depending on this parameter u can change the display of the included page.

Similar Messages

  • How to return control to parent VI

    What I want to do is monitor an Abort button and when it goes true I want to stop/close the current VI and return control to the parent VI.  I tried using an Application Stop function, but this stops the entire execution and I only want to stop the current VI.
    So how can I stop the current VI and turn control back to the parent VI without stopping execution?
    Screenshot of the VI that dosn't work is attached. 
    Thanks in advance.
    Attachments:
    dwell_vi.jpg ‏53 KB

    Dubs,
    I second Russ's thoughts that "aborting" a VI is a "bit brute force" and generally not a good programming practice.
    I would suggest using while loops coupled with the Elapsed Time VI to create an interruptible wait function similar to what is in the following screenshot:
    I hope this helps,
    Simon H
    Applications Engineer
    National Instruments
    Message Edited by Simon H on 11-16-2006 03:14 PM
    Attachments:
    interruptible wait.png ‏9 KB

  • How to return javascript function value to jsp page

    Hi i want to retrieve values from javascript function to jsp page, how can i do that ? i am trying this but its not working
    <script language="javascript" type="text/javascript" src="/feedback/common/scripts/config.js"></script>
    <script language="javascript" type="text/javascript" src="/feedback/common/scripts/richtext.js"></script>
    <td>
    <jsp:param id="description" value= "<%=request.initRTE('', '')%>"/>
    </td>
    here this initRTE function is used for displaying rich text editor .....i want to retrieve back the contetnt written in this editor and save it to DB.
    Please help.
    Edited by: xtech on Apr 4, 2008 12:00 PM

    surely i will do that but my app is still not working.....
    here is my code
    </td>
    <td align="left">
    <script language="javascript" type="text/javascript" src="/feedback/common/scripts/config.js"></script>
    <script language="javascript" type="text/javascript" src="/feedback/common/scripts/richtext.js"></script>
    <h:inputHidden id="introtext" value= "<%=request.getParameterValues(description)%>">
    <script>
    initRTE('','');
    </script>
    </td>
    in java script function i am geeting the text content
    function initRTE(rtePreloadContent, rteCSS) {
    rtePreloadContent=document.getElementById('surveyinfo:introtext').value;
    startRTE(rtePreloadContent);
    menuBuilder();
    var description= document.getElementById(rteFormName).value;
    return description;
    basically i want to get the text written in text editor in jsp and want to send it to DB.(Here initRTE() function is calling rich text editor)
    i have downloaded this editor from this url
    http://freerichtexteditor.com/page/4.htm
    and trying to embed it in my app.

  • LOVs again!  How to return multiple fields to calling form

    Hi
    Newbie question, any help GREATLY appreciated :)
    Is there a simple and easy way to return more than one field from a LOV.
    I need this as I have a composite fk comprised of 2 fields, and as such need to return 2 fields from the LOV to the calling form.
    (My environment: JDeveloper 9.0.5.2 build 1618)
    CM

    Thanks, you put me on the right track here. Further investigations show the following sample provided by OTN shows how to use both the session request/response values or a JavaBean to do this:
    http://www.oracle.com/technology/sample_code/products/jdev/10g/ADF_UIX_UserInput.zip
    As such I post my solution to my original post. Hopefully it's useful to someone beside myself. I have to write up my notes anyhow so it's no fuss to submit them to the forum. I must admit I'm a newbie and slightly demented Forms programmer so such solutions aren't so obvious to me. With this in mind please include the "standard disclaimer" here, with the addition "mileage may vary" warranty.
    For these notes I've used the "HR" demo Oracle schema. In particular the tables departments and employees. As you know there is a master-detail relationship between these 2 tables, where each department may have one or more employees.
    We have the requirement on a webpage to:
    1) Provide an input-form-with-navigation to edit the employees.
    2) Display the relating department_name field, rather than just showing the department_id which is meaningless to the user. For example if the employees.department_id = 40, we wish to show the department name "Human Resources" on the employees record.
    3) Provide a LOV for the department ID field to allow the user to change the underlying department_id to a different master departments record.
    4) Update 2) given a change via 3).
    To do this do the following:
    Entity Objects
    1) Create default EO/VOs on both tables.
    2) In the employees EO, create a new field "DepartmentName" to represent the derived department name field.
    3) Set the new EO attribute's selected-in-query field.
    4) In the query-column-expression field, enter a query to derive the department name field for each record in the detail-employees-EO.
    eg. (SELECT dpt.department_name FROM departments dpt WHERE dpt.department_id = employees.department_id)
    Ensure to include the brackets.
    5) Apply the changes and accept the warning to create default data-type settings for the new attribute.
    View Object
    6) In the employees VO, include the new field DepartmentName as a selected attribute from the EO.
    7) Apply the changes and accept the warning to create default data-type settings for the new attribute.
    8) Test the model by running the ADF BC tester. Once running select the employees VO and step through the records, making sure the DepartmentName field has a value and changes appropriately according to the relating parent department_id.
    UIX input-only-form
    9) Create a new UIX web page employeesEdit.
    10) From the data-control pallete, drag in the employees VO as an input-form-with-navigation.
    11) For testing purposes it is also useful to have a create, delete, commit and rollback button, so includes these too.
    12) Within the employees VO data-control, also drag across a messageLovInput for the DepartmentId. Position it under the existing DepartmentId messageTextInput within the UIX page. We'll remove the existing messageTextInput later, but it's useful to leave it in for testing purposes initially when the LOV returns values.
    UIX LOV
    13) Navigate to the default LOV page that has just been created for you.
    14) Within the data-control pallete, expand the departments VO, select department ID then LOV-table from the drop-down, and drag this item onto the LOV page.
    15) Save your changes.
    16) Run your application. For an existing employee, invoke the department LOV and select an alternative department. Note on returning to the employees page the DepartmentID (both the messageTextInput and messageLovInput fields) are updated, but the DepartmentName is not. To do this we need to create a JavaBean to return multiple fields from the LOV to the original form.
    JavaBean
    17) Within your ViewController project, expand the ApplicationSources-View node.
    18) Select the new button, and create a standard JavaBean.
    19) Name the bean DepartmentsLov.
    20) Via the class editor, add 2 private scope fields DepartmentId and DepartmentName with String data-types, ensuring the create get/set method checkboxes are checked.
    21) Make and save your changes.
    22) From the navigator drag the newly created java file into the data-control palette.
    UIX LOV
    23) Return to the LOV webpage.
    24) Your LOV page will have a lovSelect event handler something like the following:
    <event name="lovSelect">
    <set property="inputValue"
    value="${bindings.DepartmentId.inputValue}"
    target="${data.employeesEdit.DepartmentId}"/>
    25) Change the lovSelect as follows:
    <event name="lovSelect">
    <compound>
    <set property="inputValue"
    value="${bindings.DepartmentId.inputValue}"
    target="${data.employeesEdit.DepartmentId}"/>
    <set value="${bindings.DepartmentId.inputValue}"
    property="inputValue"
    target="${bindings.JavaBeanDepartmentId}"/>
    <set value="${bindings.DepartmentName.inputValue}"
    property="inputValue"
    target="${bindings.JavaBeanDepartmentName}"/>
    </compound>
    26) Within the UI model navigator, right-click on the top node, then create-binding, input, text field.
    27) Select the AppModuleDataControl, then DepartmentView, then the DepartmentName field, and then the ok button.
    28) In the UI model select the new field, then in the structure pane rename the field to DepartmentName.
    29) Within the UI model navigator, right-click on the top node, then create-binding, data, iterator.
    30) Select the DepartmentsLovDataControl and name the new iterator DepartmentsJavaBeanIterator.
    31) Again in the UI model navigator, right-click on the top node, then create-binding, input, text field.
    32) Select the DepartmentsLovDataControl then departmentId field, then the ok button.
    33) In the UI model select the new field, then in the structure pane rename the field to JavaBeanDepartmentId.
    34) Again in the UI model navigator, right-click on the top node, then create-binding, input, text field.
    35) Select the DepartmentsLovDataControl then departmentName field, then the ok button.
    36) In the UI model select the new field, then in the structure pane rename the field to JavaBeanDepartmentName.
    UIX input-only-form
    37) Return to the main employeesEdit UIX form.
    38) Your UIX page will have a lovUpdate event handler something like the following:
    <event name="lovUpdate">
    <null/>
    39) Change the lovUpdate as follows:
    <event name="lovUpdate">
    <compound>
    <set value="${bindings.JavaBeanDepartmentId.inputValue}"
    property="inputValue"
    target="${bindings.DepartmentId}"/>
    <set value="${bindings.JavaBeanDepartmentName.inputValue}"
    property="inputValue"
    target="${bindings.DepartmentName}"/>
    </compound>
    </event>
    40) Repeat steps 29 through 36 for this page.
    41) Within the UIX page find the entries for the departmentId LOV, and the DepartmentName. They should look something like the following:
    <messageLovInput id="${bindings.DepartmentId.path}"
    model="${bindings.DepartmentId}"
    destination="lovWindow1.uix"/>
    <messageTextInput model="${bindings.DepartmentName}"
    columns="10"/>
    42) Modify these 2 entries as follows:
    <messageLovInput id="DepartmentId"
    model="${bindings.DepartmentId}"
    destination="lovWindow1.uix"
    partialRenderMode="multiple"
    partialTargets="DepartmentId DepartmentName"/>
    <messageTextInput id="DepartmentName"
    model="${bindings.DepartmentName}"
    columns="10"/>
    43) Finally delete the original DepartmentId messageTextInput field, leaving the DepartmentId messageLovInput.
    Testing
    44) Open your UIX input-only-form.
    45) Call the LOV and change the department for an existing employee record.
    46) Return to the employees page and note that the department ID and name have changed.
    47) Commit your changes.
    48) With your favourite data inspection tool (a'la Toad), check that the employee record's department ID has been appropriately saved to the database.
    <The End>
    Phew!

  • Adobe Illustrator API - delay in returning control to calling app?

    Hi! We have developed a windows application that adds texts from a XML file to series (hundreds) of EPS files in batch mode by communicating with Illustrator CS4 using the API.
    The application runs fine, but rather slow. We found out that the application runs much faster when keeping it’s window active by constantly clicking the main window title with the left mouse button. It seems that after performing a command Illustrator somehow waits some time before returning control to the calling application. A process that can be speeded up by manually activating the calling application with a mouse click. We found a tool that can simulate the mouse clicking, which is a nice work around. However, we would rather find out what causes this behavior and deal with it in the application itself.
    Any suggestions?

    You need to give a bit more detail about what you are doing if you want to get help.
    You say you have written a windows application that communicates with Illustrator "using the API". You also say the application runs faster by "constantly clicking on the main window title" are you talking about the Illustrator window or your applications window?
    This forum is about the Illustrator SDK that is used by Illustrator plugins which are not separate applications with their own window.
    If your application is really a separate executable with its own window, I am not sure how you are communicating with Illustrator but it sounds like there is a problem in your applications message loop.

  • How to call jsp after reading from ServletInputStream?

              if the client submit a form including FILE type, I usually use ServletInputStream
              to read it and return next page by calling JSP file. but In weblogic6.0Sp1, the
              server will report a exception: One of the getParameter family of methods called
              after reading from the ServletInputStream(), can't mix these two!
              can anyone help me? thanx a lot.
              

    I've seen these messages in the WLS 5.1.0 logs when POSTing to servlets.
              All the reading is done in the servlet and then a JSP handles the view
              rendering. However, I don't actually call getParameter() or it's kin
              anywhere. I thought maybe something inside the JSP generated servlet is
              calling getParameter(), but I've looked at the generated code and can't find
              any calls. If I had a stack trace it would be easier to sort out.
              Is this a warning or an error? Is there a bad side effect. I imagine the
              getParameter() call would fail.
              Dave
              "dancy" <[email protected]> wrote in message
              news:3ac85201$[email protected]..
              >
              > if the client submit a form including FILE type, I usually use
              ServletInputStream
              > to read it and return next page by calling JSP file. but In
              weblogic6.0Sp1, the
              > server will report a exception: One of the getParameter family of methods
              called
              > after reading from the ServletInputStream(), can't mix these two!
              > can anyone help me? thanx a lot.
              

  • Help me to control the transactions from jsp to java bean

    Please anyone can guide me how to control the transactions from jsp to java bean. I am using the Websphere studio 5.1 to develop the database application. I would like to know two method to handle the database. First, I would like to know how I can control the transactions from jsp by using java bean which is auto generated for SQL statement to connect to the database. Following code are jsp and java bean.....
    // call java bean from jsp
    for (i=0;i<10;i++)
    addCourse.execute(yr,sem,stdid,course,sec);
    I write this loop in jsp to call java bean..
    here is java bean for AddCourse.java
    package com.abac.preregist.courseoperation;
    import java.sql.*;
    import com.ibm.db.beans.*;
    * This class sets the DBModify property values. It also provides
    * methods that execute your SQL statement and return
    * a DBModify reference.
    * Generated: Sep 7, 2005 3:10:24 PM
    public class AddCourse {
         private DBModify modify;
         * Constructor for a DBModify class.
         public AddCourse() {
              super();
              initializer();
         * Creates a DBModify instance and initializes its properties.
         protected void initializer() {
              modify = new DBModify();
              try {
                   modify.setDataSourceName("jdbc/ABAC/PreRegist/PRERMIS");
                   modify.setCommand(
                        "INSERT INTO informix.javacourseouttemp " +
                        "( yr, sem, studentid, courseid, section ) " +
                        "VALUES ( :yr, :sem, :studentid, :courseid, :section )");
                   DBParameterMetaData parmMetaData = modify.getParameterMetaData();
                   parmMetaData.setParameter(
                        1,
                        "yr",
                        java.sql.DatabaseMetaData.procedureColumnIn,
                        java.sql.Types.SMALLINT,
                        Short.class);
                   parmMetaData.setParameter(
                        2,
                        "sem",
                        java.sql.DatabaseMetaData.procedureColumnIn,
                        java.sql.Types.SMALLINT,
                        Short.class);
                   parmMetaData.setParameter(
                        3,
                        "studentid",
                        java.sql.DatabaseMetaData.procedureColumnIn,
                        java.sql.Types.CHAR,
                        String.class);
                   parmMetaData.setParameter(
                        4,
                        "courseid",
                        java.sql.DatabaseMetaData.procedureColumnIn,
                        java.sql.Types.CHAR,
                        String.class);
                   parmMetaData.setParameter(
                        5,
                        "section",
                        java.sql.DatabaseMetaData.procedureColumnIn,
                        java.sql.Types.SMALLINT,
                        Short.class);
              } catch (SQLException ex) {
                   ex.printStackTrace();
         * Executes the SQL statement.
         public void execute(
              String userid,
              String password,
              Short yr,
              Short sem,
              String studentid,
              String courseid,
              Short section)
              throws SQLException {
              try {
                   modify.setUsername(userid);
                   modify.setPassword(password);
                   modify.setParameter("yr", yr);
                   modify.setParameter("sem", sem);
                   modify.setParameter("studentid", studentid);
                   modify.setParameter("courseid", courseid);
                   modify.setParameter("section", section);
                   modify.execute();
              // Free resources of modify object.
              finally {
                   modify.close();
         public void execute(
                   Short yr,
                   Short sem,
                   String studentid,
                   String courseid,
                   Short section)
                   throws SQLException {
                   try {
                        //modify.setUsername(userid);
                        //modify.setPassword(password);
                        modify.setParameter("yr", yr);
                        modify.setParameter("sem", sem);
                        modify.setParameter("studentid", studentid);
                        modify.setParameter("courseid", courseid);
                        modify.setParameter("section", section);
                        modify.execute();
                   // Free resources of modify object.
                   finally {
                        modify.close();
         * Returns a DBModify reference.
         public DBModify getDBModify() {
              return modify;
    I would like to know that how can I do for autocommit from jsp. For example, the looping is 10 times which mean I will add 10 records to the db. If the last record is failed to add to db, "how can I rollback the perivious records?" or guide me to set the commit function to handle that case. Thanks a lot for take your time to read my question.

    Hello.
    The best method is using a session bean and container managed transactions. Other method is using sessions bean and the user transaction object (JTA-JTS).
    so, JDBC has transaction management too.
    good luck.

  • How to pass values between applet and jsp

    I have a jsp calling an applet which needs to return value to the calling jsp based on the action. Once the applet returns value to the calling jsp, I need to put that value into the session so that I can use it for the other pages. Could anyone have suggestion how to do it. I am new to applet development. Appreciate your help.

    Why does it have to send the value back via the same JSP? Why not create a servlet to take input from the applet?

  • How to call jsp /servlets running in different web application in tomcat

    hello all,
    i have 2 web applications(Charts and Reports) in the same tomcat,i want to call jsp/servlets running in the Reports webapp from Charts webapp.how do i achieve this.
    thanx
    ravi

    You can also use getContext(String context) in the ServletContext class to get a request dispatcher.
    Using the above example it would be :
    // in a servlet in the charts webapp
    ServletContext context = getServletContext();
    ServletContext reportsContext = context.getContext("/reports");
    RequestDispatcher dispatcher = reportsContext.getRequestDispatcher("/path")
    dispatcher.forward(request, response);Just note, that depending on your server's configuration getContext(...) might return null.

  • How to Return a value to a 10g Oracle Form form a Web Service Call

    I've read the demo available from Oracle, 'Calling a Web service from Oracle Forms', that shows how to invoke a call to a Web Service from a Form. The demo only shows how to do a call and how to display messages. I've done some searching, but can't seem to find any examples of how to return a value from the call into a field on the form. If any one could provide an example of that, I would greatly appreciate it.
    We are in the process of modifing a form and we would like to use a webservice, which we have never done before. We have created a webservice which calculates a value based upon what is entered on the form and we want to pass that calculated value back to a field on the form.
    This is the code provided by the demo to do a call.
    DECLARE
    jo ora_java.jobject;
    xo ora_java.jobject;
    rv varchar2(100);
    ex ora_java.jobject;
    BEGIN
    JO := SendServiceSoapClient.new;
    RV := SendServiceSoapClient.sendMessage(JO,:BLOCK3.PHONE_NUMBER, :BLOCK3.MESSAGE_BODY, xo, xo);
    EXCEPTION
    WHEN ORA_JAVA.JAVA_ERROR then
    message('Unable to call out to Java, ' ||ORA_JAVA.LAST_ERROR);
    WHEN ORA_JAVA.EXCEPTION_THROWN then
    ex := ORA_JAVA.LAST_EXCEPTION;
    message(Exception_.toString(ex));
    END;

    In the future, please be sure to include the exact product versions you are using. In this case, also be sure to include the java versions you are using to build your java code.
    http://blogs.oracle.com/shay/entry/10_commandments_for_the_otn_fo
    Regarding your question, take a look at this older white paper which discusses integrating Forms with SOA.
    http://www.oracle.com/technetwork/developer-tools/forms/documentation/forms-soa-wp-1-129441.pdf

  • How to call jsp from another jsp

    Hi, All,
    I have several jsp files in my pagelet. I need to put a link in one jsp file. When client click the link, it will show another jsp file. Could anybody tell me how to do that?  i have tried to use following code in page1.jsp,
    IPortalComponentURI componentURI= componentRequest.createPortalComponentURI();
    componentURI.setContextName("pagelet/page2.jsp");
    String docuri = componentURI.toString();
    <body>
    click  '<a href="<%=docuri %> ">here</a>' to link to pages.
    But it does not work. Any help will be great appreciated.
    Marea
    Message was edited by:
            Marea Yang
    Message was edited by:
            Marea Yang

    HI Yang,
    You can achieve it through eventhandliling in jspdynpage.
    Go through this link ,
    i.<a href="http://help.sap.com/saphelp_nw70/helpdata/en/2e/d2a441cd47a209e10000000a155106/content.htm">eventhandling</a>.
    ii.<a href="https://forums.sdn.sap.com/thread.jspa?threadID=103335">method to call jsp</a>.
    iii.<a href="https://forums.sdn.sap.com/thread.jspa?threadID=393522">calling  resource JSP in Portal Compoent</a>
    Hope It'll help you.
    Regards ,
    Malini.V

  • How to call jsp from web dynpro app.

    Hi Frndz,
    How can I call a JSP from my web dynpro(and here i don't want to redirect to JSP ),I want to call a JSP which can show a message window as alert on top  of WDP view.
    Here am using CE 7.2 SP1, and my requirement is to call the model(back end) for every minute interval and need to give alert that how many new records r added.With WDP java i haven't find any option to give alert r notifications about new records added, so am thinking to call JSP where I will pass the parameter which can show a alert r notification(like FACEBOOK n outlook notifications).
    Please share any ideas ti achieve this,
    Thanks in advance.
    Regrads
    Rajesh

    Hi,
    If your application should open in a new url, then you can use link to url action to open jsp.
    You can also use EPCF navigation api to call any pcd page as well external links
    i.e
      WDPortalNavigation
          .navigateAbsolute("link",[parameters]);
    Since your passing parameters, you build url in both the cases.
    Ram

  • (newbie) How to return error messages to JSP page.

    Hello,
    I'm using a very simple Model 1 architecture (no framework such as Struts used.) The webapp just consists of a login.jsp which collects database connection parameters and then activates a servlet to return a PDF report to the browser.
    I have a very common need: I would like the errors entered by the user on the login.jsp to be displayed at the top of a new return of the login.jsp (with the bottom of the JSP still providing the edit fields for reentry), errors such as:
    1.) User did not enter the username, password, and database name
    2.) Having a wrong username/password for the given database.
    (2) is more complex than (1), because it would involve feedback from the servlet (which makes the DB connection).
    I'm not sure how to code this, however, with just JSP, JSTL and JavaBeans. Does anyone know of an example with source code on the web where something similar to this is done?
    Thanks,
    Glen

    No problem on posting here. Seeing as JSP forum is not accessible, this is the next best choice.
    What sort of complexity are you after here?
    You can go with the very simple:
    Print out the error messages as you discover them.
    if (request.getParameter("username") == null){
      // print out the message
      out.println("Please enter your username");
      // or alternatively
      List errors = new ArrayList();
      errors.add("Please enter your username");
    }The best way to get feedback is to write your login method to return whether login succeeded or not. That can be a boolean true/false value, or you could return a User object to indicate success, and null to indicate failure.
    How much of the code is in servlet, how much in JSP?

  • How to call jsp/ejb in webdynpro applications

    Hi
    Is It Possible to call jsp and EJB in webdynpro applications.If it is please let me know..
    Regards
    Chandra

    Hi,
    You can call JSp and serlvets using suspend and resume plugs
    /people/bertram.ganz/blog/2006/07/03/web-dynpro-java-foundation--whats-new-in-sap-netweaver-2004s
    http://help.sap.com/saphelp_nw04s/helpdata/en/42/bb8c6cc7131d67e10000000a1553f6/frameset.htm
    For EJbs you can create a DTO and try to make use of the model import available in Webdynpro.
    Regards
    Ayyapparaj

  • How to call JSp from Servlet??

    Hello,
    I want to call JSP page from servlet.I am using Visual Age For java 3.4. What is wrong in my code??
    if (userExists) {
    f.setErrors("userName","Duplicate User: Try a different username");
    getServletConfig().getServletContext().
    getRequestDispatcher("/jsp/forms/retry.jsp").
    forward(request, response);
    I am not able to get the o/p. Pls help.

    I can't see anything obvious, but did you take any steps towards doing output before this code (like openning an output stream)?
    Not clear what f.setErrors does - presumably stuffs the error message in an attribute of the request.

Maybe you are looking for

  • Log-configuration.xml How to use it

    I am trting to use the logging xcapabilities by usinmg log-configuration.xml but is unable to do so by simply configuring it. If I do using using coding i.e by adding in code location and filelog in code I am able to log. But instead of it I am more

  • Cannot recover db

    I cannot recover database after restore. SQL> recover database until cancel; ORA-00283: recovery session canceled due to errors ORA-01610: recovery using the BACKUP CONTROLFILE option must be done SQL> recover database until cancel using backup contr

  • No quick profile settings?

    Hi all Just got my first iPhone (3GS 32GB), after being a Nokia man for about 15 years! Generally happy, but for being a smart phone there seem to be some very basic functions missing, one of which is quick profiles. I work outdoors a lot, so have a

  • Non-ASCII encodings

    XML documents with any encoding other than ASCII encoding could not be parsed by the Oracle XML parser that I am using solaris. Even the xml executable which comes with the oracle parser code is not working. I tried ISO-8859-1 - I get error 201. Appr

  • Modified URLs in sent emails

    If there was a simple way to flag a URL as non-suspicious, then the malware people would use that to make their dodgy web sites look non-suspicious. You may need to go through the Cisco security hoops to get the client website put onto the whitelist.