Redirect and request parameters

I would like to add a new parameter to the request made by a call to response.senRedirect("newpage.jsp"), so that I can read its value when control has passed to "newpage.jsp". Any ideas? Thanks a lot.

you could try response.sendRedirect("newpage.jsp?newparameter=newvalue")
this may wipe out the values of any other parameters tou are trying to send though. You could also try request.setAttribute/request.getAttribute
or
<jsp:forward>
<jsp:param>
</jsp:forward>

Similar Messages

  • HOWTO: command_button, action and request parameters HOWTO

    Starting from carDetail.jsp example:
    Click of button:
    <h:command_button
    action="#{carstore.storeFrontLuxuryPressed}"
    value="#{bundle.moreButton}" >
    </h:command_button>
    Method Invoked:
    public String storeFrontLuxuryPressed() {
         setCurrentModelName("Luxury");
         return "carDetail";
    Navigation case "carDetail" maps to:
    <navigation-rule>
    <from-view-id>/storeFront.jsp</from-view-id>
    <navigation-case>
    <description>
    Any action that returns "carDetail" on storeFront.jsp should
    cause navigation to carDetail.jsp
    </description>
    <from-outcome>carDetail</from-outcome>
    <to-view-id>/carDetail.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>
    So I imagine that a forward is done to carDetail.jsp
    At this point I want to daviate from the sample. I would like to pass request parameters to carDetail.jsp
    like:
    carDetail.jsp?mode=create&date=25-Dec-2003
    I want my managed bean in carDetail.jsp to get populated from request scope. The managed bean in config looks something like this:
    <managed-bean>
    <description>this is for item test bean.</description>
    <managed-bean-name>PageParams </managed-bean-name>
    <managed-bean-class> com.a.PageParams</managed-bean-class>
    <managed-bean-scope> request </managed-bean-scope>
    <managed-property>
    <property-name>mode</property-name>
    <value>#{requestScope.mode}</value>
    </managed-property>
    <managed-property>
    <property-name>date</property-name>
    <value>#{requestScope.date}</value>
    </managed-property>
    </managed-bean>
    How should I code the following method to pass the request parameters to the next page:
    public String storeFrontLuxuryPressed() {
         setCurrentModelName("Luxury");
    //Can I do anything here to help navigation system to pass additional request parameters to
    //the carDetail.jsp page
         return "carDetail";
    Please help as I have many pages that have command_button and control leads to other pages that take request parameters to initialize and set themselves up. And I can't understand how to make the two concepts work together?
    Thanks,
    Vinay

    Thx hunangdp
    your solution of using <f:parameter> is perfect #in case# <h:command_button> is not nested inside <h:data_table> , otherwise the request parameter passed will always show the value of the 1st row , not the clicked row .
    consider the following :
    <h:data_table var="item" value="#{shoppingCartBean.shoppingItems}" >
    <h:column>
    <h:command_link value="#{item.productId}" action="product" id="productAction">
    <h:output_text value="#{item.productName}"/>
    <f:parameter name="productId" value="#{item.productId}"/>
    </h:command_link>
    </h:column>
    </h:data_table>
    in this case using the following at the back end :
    FacesContext fc = FacesContext.getCurrentInstance();
    java.util.Map requestParameter = fc.getExternalContext().getRequestParameterMap();
    String value = requestParameter.get("productId");
    will return the value of the 1st row ..
    so if, instead I consider adding an action listener which set the request attribute "productId" to the command_link value , this will work , but I have to get the value from request attribute not the request parameter ==> :
    <h:data_table var="item" value="#{shoppingCartBean.shoppingItems}"
    rowClasses="InnerTable">
    <h:column>
    <h:command_link value="#{item.productId}" action="product" id="productAction">
    <h:output_text value="#{item.productName}"/>
    <f:action_listener type="mybean.Listener"/-->
    </h:command_link>
    </h:column>
    </h:data_table>
    and mybean.listener ==> :
    String id = (String) ((UICommand) event.getComponent()).getValue();
    HttpServletRequest request = (HttpServletRequest)facesContext.getExternalContext().getRequest();
    request.setAttribute("productId", id);
    any comments.. ?

  • JSR-168 and Request Parameters

    Hi!
    I'm creating a portlet application; right now it only has one portlet in it. The landing page for my portlet (view mode) has the following form code:
        <FORM action="<portlet:renderURL/>">
            I'm thinking of a number between 1 and 10.<BR><BR>
            <I>What is it?</I>
            <INPUT name="<portlet:namespace/>number" type="text" size="10" />
            <INPUT name="submit" type="submit" value="Guess!!" />
        </FORM>When I submit this form, I see the parameter in my browser's URL window prefixed with the portlet namespace:
       http://host:port/portal/page/portal/portalpage?__ns36_5643_36_1_1_number=3&submit=Guess%21%21Here is how I'm trying to get the "number" parameter in the Java class associated with this jsp:
                String number = (response.getNamespace()+"number");I have also tried with
                String number = response.getParameter("number");In both cases the variable number gets assigned the null value.
    How can I capture parameters sent by a form on a JSP page on the portlet's Java class?
    I am developing this portlet application with JDeveloper 10.1.3.3.0.4157 and deploying to Oracle Application Server 10.1.2.0.2 with a wsrp-compliant container. Portlet is consumed in Oracle Portal 10.1.4.
    Thank you for your response.

    I'm sorry; I typed it wrong:
    It's
    String number = request.getParameter("number");However, if you're referring to the namespace, then the way I have on my book (Portlet Programming, Effectively Using the JSR-168 Standard, by Cameron McKenzie) is really
    (response.getNamespace()+"number")

  • Google calendar is getting the error "Firefox has detected that the server is redirecting the request for this address in a way that will never complete." I have tried disabling cookies, clearing cookies and cache but that didn't work.

    Google calendar is getting the error "Firefox has detected that the server is redirecting the request for this address in a way that will never complete." I have tried disabling cookies, clearing cookies and cache but that didn't work.

    Clear the cache and the cookies from sites that cause problems.
    * "Clear the Cache": Tools > Options > Advanced > Network > Offline Storage (Cache): "Clear Now"
    * "Remove the Cookies" from sites causing problems: Tools > Options > Privacy > Cookies: "Show Cookies"
    * http://kb.mozillazine.org/The_page_is_not_redirecting_properly

  • My google calendar will not load it says that is being redirected and will never complete. I have done what was requested and it still will not work?

    My google calendar will not load it says that is being redirected and will never complete. I have done what was requested and it still will not work?

    Clear the cache and the cookies from sites that cause problems.
    * "Clear the Cache": Tools > Options > Advanced > Network > Offline Storage (Cache): "Clear Now"
    * "Remove the Cookies" from sites causing problems: Tools > Options > Privacy > Cookies: "Show Cookies"
    See also:
    * http://kb.mozillazine.org/The_page_is_not_redirecting_properly

  • EJB 3.0 - problem reading request parameters

    I'm looking at Spring and TopLink integration and deploying with the EJB 3.0 version. I ran into problems when trying to retrieve a parameter from a request. Since I could not see anything wrong, I deployed with Tomcat and the code executed correctly.
    The simple case below illustrates the problem:
    <%@ page session="false"%>
    <%@ taglib uri="http://jakarta.apache.org/taglibs/request-1.0" prefix="req" %>
    <html>
    <head>
    <title>PetClinic :: a Spring Framework demonstration</title>
    </head>
    <body>
    The ID parameter is: <req:parameter name="id"/>
    </body>
    </html>
    Running with http://localhost:8080/sto12/welcomeURL.htm?id=foo causes foo to be displayed in Tomcat but not in OC4J EJB 3.0. Why is this?
    Thanks
    Mike

    Sorry, I tried to submit the problem in a simplified form and I can see I've just made it more confusing. Let me try again.
    Spring ships with a Petclinic sample. The Spring Toplink integration work has provided new classes that allow the Petclinic example to be deployed using Toplink as the object relational mapping. I have it running using Tomcat, but have had problems using OC4J EJB 3.0.
    In the sample app, there is a JSP that allows surname to be entered, which then calls code to search for Owners with a match on surname. That code treats no matches, one match and many matches differently.
    In the case of no matches, the JSP simply displays a message saying no matches found. In the case of many matches, it uses another JSP to display a list of Owners, from which the desired one is selected. The selected one is then displayed by a further JSP on which updates can be made. Where only one match with surname is found, the selection JSP is bypassed.
    Behind the scenes when obtaining the list of matching Owners, the Toplink code simply obtains a list. When one is selected, a further Toplink access is used which returns the selected Owner by reading via the primary key selected from the list. The essence of the problem is that there is a single piece of code in the sample that makes the Toplink call to read by primary key. When called in one scenario, it works, in the other it does not.
    Where that code is invoked as a result of the user selecting from a list, it is the JSP POSTing the selected Owner that transmits the primary key to the code. The code obtains the key from the request and everything works fine.
    Where only one Owner is found, a redirect is done with the key added as a parameter. When the same code as above attempts the retrieve the key, it is unable to do so ie it returns null and the subsequent Toplink call fails.
    Since the above obscures the problem, I played around with two of the JSPs provided - welcome.jsp and index.jsp. In the sample, index.jsp is included in the web.xml under <welcome-file-list> and hence is used when the app is started. It simply redirects to welcome.jsp. (I believe the reason is that all requests go via the Spring DispatcherServlet and are forwarded to the appropriate JSP depending on configuration - hence the comment that they are "virtual").
    When I put code in the index.jsp to display an id parameter and start it with an id provided, it displays the id parameter. When I let the index.jsp simply redirect to welcome.jsp (with an id included and welcome.jsp changed to display the value)it does not display the value.
    I'm sorry this has become a long post. The gist seems to be that I can't extract parameters from requests that have been redirected. As I said at the top of this note, this is not the case with Tomcat - I can run the same code there and retrieve parameters from a request, whether it has been redirected or not. I've posted in this forum because I believe the problem is with OC4J not with Spring or Toplink. I could be wrong.
    Any suggestions are very welcome.
    Mike

  • Auto Login With Request Parameters

    Hello
    I am working on a test JSF application in NetBeans 5.5 using the visual web pack. Currently there are only two pages in the app, a login page and a main page.
    I am trying to figure out how I could set up an auto login to a JSF based web app. I would like the app to be able to take username and password parameters on the URL and automatically attempt to log into the app with those values. When the URL contains these parameters and they're valid, instead of displaying the login page, it would start up with the main page displayed. If the paramters were not present or invalid, the login page would be displayed.
    I've read about how to pull request parameter values into from a JSP page, but I don't think that would helpful for this case. I have instances of ApplicationBean, SessionBean and RequestBean in the project. I'm wondering if any of these would be the appropriate place to add some code to check for the parameters, attempt to login and display the correct page based on the login result.
    And advice greatly appreciated.
    Shelli

    I'll be so kind to share a basic example I've been playing with a while ago :)
    public class UserFilter implements javax.servlet.Filter {
        @SuppressWarnings("unused")
        private FilterConfig filterConfig;
        public void init(FilterConfig filterConfig) {
            this.filterConfig = filterConfig;
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException
            // Check PathInfo.
            HttpServletRequest httpRequest = (HttpServletRequest) request;
            String pathInfo = StringX.trim(httpRequest.getRequestURI(), httpRequest.getContextPath());
            if (pathInfo.indexOf(PATH_INC + "/") == 0 || pathInfo.indexOf(MAIN_JSF) == 0) {
                // If include files are loaded (subviews, images, css, js) or if unfriendly URL is
                // requested somehow, then continue the chain and abort this filter. In case of
                // unfriendly URL's, the next filter in the chain is the FriendlyUrlFilter which
                // translates the URL and will redirect back to this filter.
                chain.doFilter(request, response);
                return;
            // Get UserSession from HttpSession.
            HttpSession session = httpRequest.getSession();
            UserSession userSession = (UserSession) session.getAttribute(SESSION_ID);
            if (userSession == null) {
                // No UserSession found in HttpSession; lookup SessionId in cookie.
                String sessionId = Context.getCookieValue(httpRequest, COOKIE_ID);
                if (sessionId != null) {
                    // SessionId found in cookie; lookup UserSession by SessionId in database.
                    userSession = new UserSession();
                    userSession.setSessionId(sessionId);
                    LoadQuery<UserSession> loadQuery = new LoadQuery<UserSession>(userSession);
                    try {
                        Dao.execute(loadQuery);
                        userSession = loadQuery.getOne(); // This can be null.
                        // If this is null, then session is just deleted from DB or the cookie is fake.
                        Logger.info("Loading usersession succeed: " + userSession);
                    } catch (DaoException e) {
                        Logger.error("Loading usersession failed.", e);
                if (userSession == null) { // loadQuery.getOne() can return null.
                    // No SessionId found in cookie, or no UserSession found in DB; create new UserSession.
                    sessionId = StringX.getUniqueID();
                    userSession = new UserSession(sessionId);
                    try {
                        Dao.execute(new SaveQuery<UserSession>(userSession));
                        Logger.info("Creating usersession succeed:" + userSession);
                    } catch (DaoException e) {
                        Logger.error("Creating usersession failed.", e);
                    // Put SessionId in cookie.
                    HttpServletResponse httpResponse = (HttpServletResponse) response;
                    Context.setCookieValue(httpResponse, COOKIE_ID, sessionId);
                // Set UserSession in current HttpSession.
                session.setAttribute(SESSION_ID, userSession);
            // Add hit and update UserSession.
            userSession.addHit();
            try {
                Dao.execute(new SaveQuery<UserSession>(userSession));
                Logger.info("Updating usersession succeed:" + userSession);
            } catch (DaoException e) {
                Logger.error("Updating usersession failed.", e);
            // Continue filtering.
            chain.doFilter(request, response);
        public void destroy() {
            this.filterConfig = null;
    }By the way, the 'User' DTO is wrapped in the UserSession which can be retrieved in the backing bean by:
    public User getUser() {
        return ((UserSession) Context.getSessionAttribute(SESSION_ID)).getUser();
    }If the User is not logged in, then this is null. If the user is logged in, then put the User in the UserSession object.

  • How to encode request parameters?

    Hi I'm running a small web application developed with JSP pages. But it turns out that it relies on cookies to maintain sessions, which is a limitation if the client's cookie setting disables cookies.
    I know that I could encode the request parameters and use GET method to communicate information between client and server, but have no idea how this is done.
    Can you give me some code, or recommend some tutorial to me? Thanks!

    1. If you don't want to use cookies, you could use URL rewriting to append the session ID. When you redirect to another page, do something like the following:
    a. first choose whether you want to forward or sendRedirect: (the following example is a redirect)
    //encode the parameter values to encode special characters, such as spaces
    String parameterOne = java.net.URLEncoder.encode("some value");
    String parameterTwo = java.net.URLEncoder.encode("some other value");
    //build the query string any way you want
    String queryString="?key1="+parameterOne+"&key2="+parameterTwo;
    /* Use response.encodeRedirectURL if running it through a sendRedirect.
       Doing so will rewrite the url with the session ID appended to the
       end. */
    response.sendRedirect(response.encodeRedirectURL("some.jsp"+queryString));This little code snippet demonstrates two things. It shows that URL rewriting can be used to append the session ID. It also shows you how to encode parameters (i.e. use URLEncoder.encode()).
    If you want to encode your string in the JSP, you could also do it using javascript:
    <script language="JavaScript">
    <!--
       //this is just an example javascript function
       function openPage() {
          var thisForm=document.formName;
          /* get your form element values (these are text boxes).
             Note: the javascript escape() function url encodes the values.
                   there are also other js functions to do this. */
          var paramOne=escape(thisForm.paramOne);
          var paramTwo=escape(thisForm.paramTwo);
          var queryString="?paramOne="+paramOne+"&paramTwo="+paramTwo;
          window.open("some.jsp"+queryString,"some_window_name");
       }//end openPage
    //-->
    </script>Or, you could build it using JSP expressions and scriptlets. Its really up to you. These are just rudimentary examples to help you get started.

  • Passing Request Parameters to Non JSF Page

    I want to pass request parameters from a JSF page (Page1.jsp) to a non JSF page (paramTest.jsp) and am having trouble.
    The parameters are 'null' in the non JSF page.
    Here is code (in Page1.java) that is called when 'button1' is clicked in Page1.jsp (modified from JSF, Bergsten p.167):
    public String button1_action() {
            FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
            ExternalContext ec = context.getExternalContext();
            try {
                ec.redirect("http://xxx/paramTest.jsp");
            } catch (Exception e) {
                // print exception information in the server log
                log("Exception occurred when redirecting page", e);
                error("Trouble redirecting page");
                return null;
            context.responseComplete();
            return "success";
        }Here is Page1.jsp code: <?xml version="1.0" encoding="UTF-8"?>
    <jsp:root version="1.2" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page">
        <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
        <jsp:text><![CDATA[
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    ]]></jsp:text>
        <f:view>
            <html lang="en-US" xml:lang="en-US">
                <head>
                    <meta content="no-cache" http-equiv="Cache-Control"/>
                    <meta content="no-cache" http-equiv="Pragma"/>
                    <title>Page1 Title</title>
                    <link href="resources/stylesheet.css" rel="stylesheet" type="text/css"/>
                </head>
                <body style="-rave-layout: grid">
                    <h:form binding="#{Page1.form1}" id="form1">
                        <h:inputText binding="#{Page1.name}" id="name" style="left: 144px; top: 96px; position: absolute"/>
                        <h:outputLabel binding="#{Page1.componentLabel1}" for="componentLabel1" id="componentLabel1" style="left: 72px; top: 96px; position: absolute">
                            <h:outputText binding="#{Page1.componentLabel1Text}" id="componentLabel1Text" value="Name:"/>
                        </h:outputLabel>
                        <h:commandButton action="#{Page1.button1_action}" binding="#{Page1.button1}" id="button1" onclick="this.form.submit() style="left: 120px; top: 144px; position: absolute" value="Submit"/>
                        <h:messages binding="#{Page1.messageList1}" errorClass="errorMessage" fatalClass="fatalMessage" id="messageList1" infoClass="infoMessage"
                            showDetail="true" style="left: 480px; top: 72px; position: absolute" warnClass="warnMessage"/>
                    </h:form>
                </body>
            </html>
        </f:view>
    </jsp:root>Here is the rendered Page1.jsp html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xml:lang="en-US" lang="en-US">
    <head>
    <meta http-equiv="Cache-Control" content="no-cache"/><meta http-equiv="Pragma" content="no-cache"/>
    <title>Page1 Title</title>
    <link type="text/css" rel="stylesheet" href="resources/stylesheet.css"/>
    </head>
    <body style="-rave-layout: grid">
    <form id="form1" method="post" action="/cenwkd/faces/Page1.jsp;jsessionid=79A5577F53DAAEDF164C5D33F33D8327" enctype="application/x-www-form-urlencoded">
    <input id="form1:name" type="text" name="form1:name" style="left: 120px; top: 96px; position: absolute" />
    <label id="form1:componentLabel1" for="form1:componentLabel1" style="left: 72px; top: 96px; position: absolute">
    <span id="form1:componentLabel1Text">Name:</span></label>
    <input id="form1:button1" type="submit" name="form1:button1" value="Submit" onclick="" style="left: 120px; top: 144px; position: absolute" />
    <input type="hidden" name="form1" value="form1" />
    </form>
    </body>
    </html> Here is the source for a test jsp, paramTest.jsp: <html>
    <head>
    <title>
    paramTest
    </title>
    </head>
    <body>
    <h2><%= request.getParameter("form1:name")%></h2>
    <%-- Also tried: request.getParameter("name"), "name" is the original 'id' value for the text field entered in Creator
         it apparently is changed to "form1:name" when the html is rendered--%>
    </body>
    </html>Here is the rendered html from paramTest.jsp: <html>
    <head>
    <title>
    paramTest
    </title>
    </head>
    <body>
    <h2>null</h2>
    </body>
    </html>Any help would be much appreciated.

    Hi,
    I dont see any parameters that you are trying to pass in the below code.
    public String button1_action() {
    FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
    ExternalContext ec = context.getExternalContext();
    try {
    ec.redirect("http://xxx/paramTest.jsp");
    } catch (Exception e) {
    // print exception information in the server log
    log("Exception occurred when redirecting page", e);
    error("Trouble redirecting page");
    return null;
    context.responseComplete();
    return "success";
    }

  • CreateAuthenticatedSessionToken: The signature of the request does not match the request parameters

    I'm creating an app using the SODA Architecture. 
    I could successfully create an app and make the client to authorize it. 
    Result of newApplicationCreationInfo:
    <?xml version="1.0" encoding="UTF-8"?>
    <response>
    <status>
    <code>0</code>
    </status>
    <wc:info xmlns:wc="urn:com.microsoft.wc.methods.response.NewApplicationCreationInfo">
    <app-id>4417587e-46d1-49ee-a0fa-50dbfdcf932c</app-id>
    <shared-secret>gBksYDAqcuAUXK+zyvfFW9F0sy8nchwnplJ6K7aKmAM=</shared-secret>
    <app-token>AiAAANDl....A5b9fxVIlXEloouci6jGhY/A==</app-token>
    </wc:info>
    </response>
    I'm using the app-token to build the redirect url, and I get to authorize the new app. 
    then, using the new child app id and the shared-secret I built the 
    CreateAuthenticatedSessionToken:
    <?xml version="1.0" encoding="UTF-8"?>
    <wc-request:request xmlns:wc-request="urn:com.microsoft.wc.request">
    <header>
    <method>CreateAuthenticatedSessionToken</method>
    <method-version>2</method-version>
    <app-id>4417587e-46d1-49ee-a0fa-50dbfdcf932c</app-id>
    <language>en</language>
    <country>US</country>
    <msg-time>2013-01-01T00:00:00Z</msg-time>
    <msg-ttl>1800</msg-ttl>
    <version>2.0.0.0</version>
    </header>
    <info>
    <auth-info>
    <app-id>4417587e-46d1-49ee-a0fa-50dbfdcf932c</app-id>
    <credential>
    <appserver2>
    <hmacSig algName="HMACSHA256">PcW4f9krD1O43O4JGBGEkqDlpatFIUUQY9JejHji0XA=</hmacSig>
    <content>
    <app-id>4417587e-46d1-49ee-a0fa-50dbfdcf932c</app-id>
    <hmac>HMACSHA256</hmac>
    <signing-time>2013-12-17T14:19:58.623Z</signing-time>
    </content>
    </appserver2>
    </credential>
    </auth-info>
    </info>
    </wc-request:request>
    Being hmacSig value the encryption of "<content>....</content>" using shared-secret value as private key:
    hmacSig = Encodingutil.base64Encode(Crypto.generateMac('hmacSHA256', Blob.valueOf(body), Blob.valueOf(sharedSecret)))
    this returns an error code 11: The signature of the request does not match the request parameters.
    I'm using the following endpoint: https://platform.healthvault-ppe.com/platform/wildcat.ashx
    Also the redirection url I received after authorizing the app contains the following: 
    https://<MY_URL>/?gws_rd=cr&ei=h5ewUuKLJa7IsASc4YHIAw I'm not using this parameters, if that helps.
    Any hint will be greatly appreciated.
    UPDATE: I already checked the HMAC encoding using a third party service and it returned the same as my app

    I figured this out (God bless Pair Programming):
    I was signing incorrectly: 
    On the newApplicationCreationInfo:
    My Shared Secret is : gBksYDAqcuAUXK+zyvfFW9F0sy8nchwnplJ6K7aKmAM=
    But BEFORE hashing the "<content>...</content>" i need to decode my secret that is:
    hmacsig = calculateHMAC256(content, sharedSecret.decodeBase64())
     

  • Newbie: what is the equivalent of passing request parameters?

    Hi-
    I am new to JSF. I have read many tutorials and articles. I still don't get one concept about passing parameters. Note: I don't want to store stuff in the session unless I have to.
    Let's say I have a page with a list of users. I layout the page with a panelGrid. Each row of the table has the first and last name of the user. If a user clicks on the name of a user on the user list, it should go to the user profile page. The backing bean for the user list page will be the UserListBean. It has a method called getUsers() that returns a List of User objects.
    For the View User page, I have a ViewUserBean. The ViewUserBean retrieve the entire profile for that user.
    How do I pass the user ID to the ViewUserBean? In struts, I would pass it as a request parameter (I would manually write the link URL with the userID). I know I can use the request like that in JSF, but that seems ugly. I looked at the code of the J2EE bookstore tutorial and it does a funky thing with all sorts of data stored in the session.
    What is the best way to request a page and "pass in" a userID?
    Thanks for your help.
    Adam

    I have a case on my current project very similar to your case. What you want, very simply, is an easy way to allow faces to handle URLs like http://www.domain.com/showUserDetails?userId=50
    The natural trouble is that when loading the page, there is no action to use to prefetch the User object based on the Request Parameters in JSF.
    All the solutions above either rely on the session or they are exceedingly complex. This case is actually very easy to do and is very straight forward using Managed Properties and a Request Scope bean...
    Here is the rather straight forward solution I used...
    First, make a "ShowUserDetailsBean" which represents the "logic" for this page.
    public class ShowUserDetailsBean
        /** Will point to the actual user service after dependency injection*/
        private UserService userService;
        /** Will hold the userId from the HTTP Request Parameters*/
        private String userId;
        /** Will hold a lazy loaded copy of the User object matching userId*/
        private User user;
        public void setUserService(UserService userService) {
            this.userService = userService;  //dependecy injection
        public void setUserId(String userId) {
           this.userId = userId;  //dependency injection
        /** Lazy loads the User object matching the UserId */
        public User getUser() {
            //Trap the case where the URL has no userId
            if (userId == null) return null;
            if (user == null) {
                user = userService.getUser(userId);  //Lazy Load
            return user;
    }Next, configure the managed properties in faces-config.xml
    <faces-config xmlns="http://java.sun.com/JSF/Configuration">
      <managed-bean>
        <managed-bean-name>userService</managed-bean-name>
        <managed-bean-class>foo.UserServiceImpl</managed-bean-class>
        <managed-bean-scope>application</managed-bean-scope>
      </managed-bean>
      <managed-bean>
        <managed-bean-name>showUserDetails</managed-bean-name>
        <managed-bean-class>foo.ShowUserDetailsBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
          <property-name>userService</property-name>
          <property-class>foo.UserService</property-class>
          <value>#{userService}</value>
        </managed-property>
        <managed-property>
          <property-name>userId</property-name>
          <property-class>java.lang.String</property-class>
          <value>#{param.userId}</value>
        </managed-property>
      </managed-bean>Finally, you just make your webpage as you normally would...
    <h:outputText value="#{showUserDetails.user.userId}"/>
    <h:outputText value="#{showUserDetails.user.firstName}"/>
    <h:outputText value="#{showUserDetails.user.lastName}"/>
    Now you're ready to test, so you visit the page
    http://www.domain.com/showUserDetails?userId=50
    And your user details with userId=50 appears!
    It's just that simple!
    Regards,
    Doug
    Caveat: I haven't added any sample logic to handle cases where you visit:
    http://www.domain.com/showUserDetails
    without specifying a userId. I suggest you add some basic logic to your page to handle this case more gracefully.

  • WHY? Request Parameters From Form are NULL

    I have the following process, which by the way has been working successfully for months, until just recently.
    1) User comes to JSP page to upload images through a form that has the <input type="file"> fields as well as <input type="hidden"> to hold a few essential values.
    2) User submits form, form action attribute set to go to a Servlet
    3) Servlet reads all request params and inserts the images into a database.
    I have code to read in the images...I use classes from the org.apache.commons package.
    I could only assume it was the servlet that was the problem, but doubted that because why would it work all these months than suddenly stop.
    I set up a test html page with a form and had it go to a jsp page to read the request params and print them out. To my suprise they all had NULL values.
    Which tells me that the params aren't being read from the form.
    How could this be??
    Here is some example code snippets from my test pages:
    HTML PAGE
    <html><body>
    <form name="images" action="testing_operations.jsp" enctype="multipart/form-data" method="post">
    <input type="hidden" name="Customer_Number" value="4750">
    <table>
    <tr><td>
    <input type="file" name="image1" />
    </td></tr>
    <tr><td>
    <input type="file" name="image2" />
    </td></tr>
    <tr><td>
    <input type="submit" value="submit">
    </td></tr>
    </table>
    </form>
    </body>
    </html>JSP PAGE
    String cus = request.getParameter("Customer_Number");
    out.println("cus : " + cus +"<br>");
    String image = request.getParameter("image1");
    out.println("image: " + image); 
    I'm stumped...what am I doing wrong?
    I can't continue until I get this figured out, can anybody help me with this?
    Message was edited by:
    Love2Java

    I ran my original app with the enctype and without it:
    the tomcat dos-prompt that shows exceptions lists out this below...
    org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed.
    C:\jakarta-tomcat\temp\upload_00000009.tmp (The system cannot find the path specified)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:429)
    at org.apache.jsp.testing_operations_jsp._jspService(testing_operations_jsp.java:113)The code on line 113 in testing_operations.jsp is:
    List items = upload.parseRequest(request);
    and what is this .tmp file its trying to find?? I'm passing it an image off my local disk, not a .tmp file, there isn't even a temp folder in my jakarta-tomcat main folder....
    It is failing on this line because it isn't reading the request parameters sent in, thus why too when I test for the values of the params they return null.
    True, when I take out the enctype my test page will show the values, but this doesn't help me. I need that enctype attribute in there to process the images sent in through the fields.
    So where does this leave me??
    I went to the apache site for the commons upload and they have a more current version than what I'm using which is version 1.0, they have 1.1.1
    I downloaded the new version but had no success in using it, the compiler couldn't find a class I attempted to use.
    I still don't understand how this could be working and then suddenly stop.

  • Initialize managed bean from request parameters

    Hi:
    I thought this topic would be on the FAQ, but I couldn't find it. I am looking for a mean to initialize my managed bean from the query string. There must be something like:
    <h:form initializeBean=""true"" requestParameter=""id_author"" beanProperty=""#{author.id_author}"" action=""#{author.getFromDB}"" >
    </form>
    The url would be something like http://localhost:8080/protoJSF/showAuthor.jsf?id_author=5334
    And the getFromDB method would be something like
      Public void getFromDB()
         Statement stmt = cn.createStatement( ?SELECT * from author where id_author=? + getId_author() );
         ResultSet rs = stmt.executeQuery();
      }The only way I've found to perform something like this is to present a blank author form with a ''load data'' button: after pressing the button the user can see author's data and edit the data if she wants to. This two-step data screening is annoying, to say the least.
    There must be a better way.
    I beg for a pointer on how can I achieve the initializing of a managed bean with dynamic data.
    Regards
    Alberto Gaona

    You just have to read carefully the very fun 289 pages
    specification :-)Or, if 289 pages of JavaServer Faces is too much, you can get almost all of the same information from the JavaServer Pages 2.0 specification, or even the JSP Standard Tag Libraries specification :-).
    More seriously, the standard set of "magic" variable names that JavaServer Faces recognizes is the same as that reognized by the EL implementations in JSP and JSTL. Specifically:
    * applicationScope - Map of servlet context attributes
    * cooke - Map of cookies in this request
    * facesContext - The FacesContext instance for this request
    * header - Map of HTTP headers (max one value per header name)
    * headerValues - Map of HTTP headers (String array of values per header name)
    * initParam - Map of context initialization parameters for this webapp
    * param - Map of request parameters (max one value per parameter name)
    * paramMap - Map of request parameters (String array of values per parameter name)
    * requestScope - Map of request attributes for this request
    * sessionScope - Map of session attributes for this request
    * view - The UIViewRoot component at the base of the component tree for this view
    If you use a simple name other than the ones on this list, JavaServer Faces will search through request attributes, session attributes, and servlet context (application) attributes. If not found, it will then try to use the managed bean facility to create and configure an appropriate bean, and give it back to you.
    For extra fun, you can even create your own VariableResolver that can define additional "magic" variable names known to your application, and delegate to the standard VariableResolver for anything else.
    Craig McClanahan

  • Extracting Request Parameters from a POST.

    A client is POSTING some request parameters as part of its POST request.
    My servlet is getting this as part of the getInputStream.
    The contents of the inputStream received is:
    username=someUserName&password=somePassword
    Now how do I extract this username and password which is in the Body
    of the POST?
    I am trying request.getParameter("username")
    but am not getting the value of the username.
    Can some please help me as to how to get the request parameters?
    Attached is my servlet
    public class DeviceLocation extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html";
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doPost(request,response);
    public void doPost(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("Servlet up and running...");
    InputStream requestInputStream = request.getInputStream();
    InputStreamReader isr = new InputStreamReader(requestInputStream);
    BufferedReader br = new BufferedReader(isr);
    String line = "";
    StringBuffer sb= new StringBuffer();
    while ((line = br.readLine()) != null)
    sb.append(line);
    br.close();
    System.out.println(sb.toString()); // display the input Stream
    // Display all the Request Parameters
    System.out.println("Request Method : " + request.getMethod());
    System.out.println("Host : " + request.getHeader("Host"));
    System.out.println("User Agent : " + request.getHeader("User-Agent"));
    } // End of servlet class.

    try doing it without reading in the requestInputStream first:
    public class DeviceLocation extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html";
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doPost(request,response);
    public void doPost(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("Servlet up and running...");
    // Display all the Request Parameters
    System.out.println("username Parameter : " + request.getParameter("username"));
    System.out.println("Request Method : " + request.getMethod());
    System.out.println("Host : " + request.getHeader("Host"));
    System.out.println("User Agent : " + request.getHeader("User-Agent"));
    } // End of servlet class.

  • How can I stop redirect and jumping when clicking on a link in Google search or on a web page?

    When I click on a link in Google (or other) search, or a button within a page, too often, at least half the time my request is REDIRECTED and JUMPS to another unwanted page!
    == This happened ==
    Every time Firefox opened
    == after attempting to clean the computer a few times

    Thank you, Weather15.
    I have cleaned my computer a few times since first noticing it, both with Spybot - Search & Destroy and CCleaner. Also have
    the latest version of AVG 9.0 Free checking for problems as I search.
    I am about to clean again though to see if it makes a difference.
    Had to do some updating a few days ago and haven't cleaned since then. Thanks again. Will let you know if this handles it!

Maybe you are looking for

  • Installing memory (iMac mid-2011) - mixing 2gb and 4gb

    Hey! I'm soon getting my first iMac and it comes with the stock 4gb memory. As there will be two empty slots, I'd like to install 2x4gb Kingstons to get 12gb. My question is, does it matter in which slots I put the new ones or is there a certain way

  • Error installing photoshop cs2 for mac

    I downloaded photoshop cs2 for mac its official website. The version of my OS is 10.9. When installing photoshop in the end get the following error: "error during installation." They can help with the cause and solution of this error?

  • PSE 10 Slide Show Creation hangs programm

    Hello, when trying to create a new slide show from PS Organizer the program hangs completely. I can still chose the options like duration and effects, but after accepting these the next window with the output format options won't show. The program do

  • Update query for managing an Oracle spatial database

    Hi, i'm trying to manage a spatial network i have created in Oracle 11g. One of the tables i have created named "DE_OSM_RT_LINK$", contains data for links which exist between nodes. The link table contains a column named "Cost". All the values of thi

  • My dell latitude laptop wont recognize any ipods...

    i tried using different cords and different usb ports but no use! i even tried diferent ipods....those including a 3rd and 4th generation nanos...it wont even charge...can any one help me?