Confusion about backing beans and multiple pages

Hello:
I'm new to JSF and am confused by several high level and/or design issues surrounding backing beans. The
application I am working on (not unlike many apps out there, I suspect), is comprised of several forms which
collect various query parameters and other pages that display the query results via dataTables. Additionally, the
displayed results have hyper-text enabled content sprinkled throughout in order to allow further "drill-down" to
greater details about a given result.
Obviously, the initial forms are backed by a managed bean that has the getters/setters for each of the various
fields. From a modularization perspective, I'd prefer to have the query execution in a separate class entirely,
which I can accomplish via delegation or actionListeners. Where I get confused is in the case that one of the
hyper-text enabled fields needs to invoke yet another query requiring specific values from the original result.
In this case, how should I design the beans to store the pertinent selection information AND still be able to
have the resulting 'details' query in a separate class.
For example, let's assume that I have a form with a simple backing bean to collect initial query params. The user
fills out the form and clicks on submit. The action field of the <h:commandButton> tag inside the <h:form>
delegates to a method which performs the query and returns a navigation string to the results display page. The
results page then uses a <h:dataTable> tag to display the results. However, through the process of displaying the
results, it will create the hyper-text links as follows:
                    <h:form>
                        <h:commandLink action="viewDetails">
                            <h:inputHidden id="P_ID" value="#{results.id}"/>
                            <h:outputText value="Click here to see details"/>
                        </h:commandLink>
                    </h:form>Notice that the value="#{results.id}" is the key field (in some case I may need more than one) that the subsequent
details page will need to perform the query. However, this value is stored in the results attribute of the original
query backing bean. I do NOT want to add yet another level of queries into the same backing bean as I would like
to keep the original and details query beans separated for maintenance and style reasons. How then, can I get this
specific value ("#{results.id}") into another backing bean that could be accessed by the subsequent details page
and query? In general, how does one map a single display element to multiple backing beans (or accomplish the
effect of having one 'source' bean's value end up in another 'destination' bean's attr? If this is not possible,
then isn't the details query/page forced to use the same backing bean in order to get the data it needs? If so,
how can it determine which id was selected in this case?
I'd appreciate any thoughts, ideas and suggestions here! Is there a better way to design the above in order to
maintain the separation of logic/control? What is the 'best practice' approach for this sort of stuff?
Thanks much in advance!

This is what I have done in the pass
<h:commandLink action="#{AppAction.getRecord}" >
<h:outputText value="#{bbr.id}"/>
<f:param name = "recordid" value ="#{bbr.id}" />
</h:commandLink>
within the getRecord method
String key = "";
FacesContext facesContext = FacesContext.getCurrentInstance();
     ServletContext servletContext = ServletContext)facesContext.getExternalContext().getContext();
key = (String)facesContext.getExternalContext().getRequestParameterMap().get("recordid");
then call you dbmethod passing in the key of the record the user wants to edit
and then simply return a string to what page you want the user to go to
I think this is what your looking for

Similar Messages

  • Session backing beans and multiple navigator windows sharing session

    Hi let's suppose i have a web and page1, page2 and page3 that should share the backingbean. Normal navigation goes from page 1 to page 2 to page 3.
    I do not want a backing bean per page because i need to share data between my pages. The immediate solution is to put this bean in session context and use it in each page. But this has severe drawbacks:
    - The backing bean is the same each time I access any page, and I want a new bb to be used each time the user requests for page 1
    - When a user has more than one navigator window sharing session, and on each window he is navigating through pages 1 to 3, there can be a big mess because he is accessing to the same bb from both windows.
    So I would like to find a solution that permit the user to navigate from both windows as if the windows had its own session.
    Any hint?
    Thnx

    I have a similar problem as described .
    I hava one window with enterable fields and when you click on a button it opens another window .Both forms are backed by the same bean .since both forms are nearly the same .
    The bean is a managed bean in request scope .
    when I fill in the first window with values and click on the link it opens the second but the first windows elements and now empty .
    Even though it is in Request scope when the second window is being loaded the bean is re-initialized . I would expect a new intance of this bean to be created for the second window .
    This is how I am calling the second window .
    <h:commandButton id="newRequestItem" action="#{requestItem.createNewRequestItem}" rendered="#{createActivationRequest.displayCreateLinks}" onclick="openNewPage('NewRequestItem.jsp');"
    image="images/show_all.gif" title="new request">
    <h:outputText value="new request" styleClass="toolbar-command"></h:outputText>
    </h:commandButton>
    function openNewPage(url)
         aqcbwin= window.open(url, "newRequestItem","toolbar=no, scrollbars=1");
    aqcbwin.moveTo(50, 50);
    target="_new";
    //target="_blank";
    aqcbwin.focus();
    any ideas to what is wrong and how I can correct this .
    Thanks for your help .
    Mark

  • Confused about nonGUI beans and events

    The crux of this is the question "When will a NON GUI bean use events to communicate?"
    Articles I have read advocate that Beans are not just GUI components, and I agree. However I've only ever seen examples of GUI Beans!
    I am writing a non GUI Bean to represent a credit card.
    Before I got concerned with beans I would have just written the class with some accessor methods and some functional methods to do what I want, something like;
    void setCardNumber(String n)
    boolean isNumberValid() //check the card number using MOD10
    and then used that class in my application.
    But now I want to make it conform closer to JavaBeans. I know that beans have methods, but I am confused somewhat about how events figure into this. Do nonGUI beans fire events/listen for events? Very often?
    What I am asking is, what events should a Bean like CreditCard fire? The main function of this Bean is to determine if the number conforms to MOD10 checks using isNumberValid() method.
    Consider that I want to write another Bean, a GUI component that takes card details and updates the nonGUI CreditCard Bean. Of course I want loose coupling, not every user will use my CreditCard Bean (especially if I dont get these events straight!). If I use property change events to fill in the card number etc in the CreditCard Bean, should I make it (the CreditCard bean) listen for focusLost events from the interface to determine when all the details have been filled in and fire an event about the validity of the card number?? Doesn't this break the rules a bit, by providing prior knowledge to the CreditCard nonGUI Bean??
    Should the CreditCard nonGUI bean fire an event to say that the number is valid/invalid?
    You will probably say, "WHY use events, when you only need methods?" and that is my question! When would a non GUI bean fire or listen to events? I want my non GUI bean to be completely ignorant of GUI stuff, so no focusLost listener.
    Should the credit card interface fire a custom event (CardDetailsEnteredEvent) and the non GUI bean listen for these? But that's tighter coupling than just implementing the methods isn't it?
    I think that the nonGUI bean will have property change listeners for the card number etc, but this begs the question, what is the point of setter methods if I am bound the properties anyway??
    I've read everything pertinent at http://java.sun.com/products/javabeans/training.html
    Thanks to anyone who can stop my head hurting.
    Jim

    Ah, I think I may have figured it out from the spec.
    "Conceptually, events are a mechanism for propagating state change notifications between a
    source object and one or more target listener objects."
    key phrase being "state change" - my non GUI bean CreditCard only really has two states; 1. incomplete card details and 2. complete card details. So I guess I could/should only fire an event (DetailsEntered) when the details are completely 'filled in'.
    Which leaves me with the GU interface bean, it has two states also, 1. details being edited (focus gained) and 2. details finished being edited (focus lost) - should then this bean fire its own event (DetailsEdited) or should it just rely on other beans listening for the focus lost event? It's my functional interpretation that a focus lost event signifies that the details have been edited, perhaps I should therefore implement my own event that has this contextual meaning (DetailsEdited).
    I'm aware that the names of these events are quite poor, I always find good naming to be another very important head scratcher!!
    Jim

  • I'm horribly confused about student licensing and commercial use

    As the title says I'm horribly confused about student licensing and using it for commercial use.
    I currently have a Student Licensing version of Adobe Creative Suite 4 that I purchased through my school's journeyEd portal.
    Seeing how CS5 is now out I was browsing looking at prices (why not upgrade while I'm still a student, right?) and while browsing I bumped into one source that says that Student Licensing can not be used for commercial purposes, and this is when the confusion started. I remember reading before that we are able to use student licensing for commercial purposes, okay time to google search. I found one Adobe FAQ that says I can. .
    http://www.adobe.com/education/students/studentteacheredition/faq.html
    " Can I use my Adobe Student and Teacher Edition software for commercial use?
    Yes. You may purchase a Student and Teacher Edition for personal as well as commercial use. "
    and I found this old thread;
    http://forums.adobe.com/thread/314304
    Where an poster listed as an employee of Adobe states
    "There is no upgrade from the CS3 Educational Edition to the comparable CS3 editions sold in non-academic environments. If you have an educational version of for CS3 obtained legitimately (i.e., you qualified for the educational version when you obtained it), you may continue to use that software for the indefinite future, even for commercial use! You cannot sell or otherwise transfer that license, though! When the next version of the Creative Suite is released, you will have two choices: (1) If you still qualify for the educational version, you can buy a copy of that next version (there is no special upgrade pricing from one educational version to another; the price is already very low) or (2) you can upgrade from the educational version of CS3 to the full version of the next version of the Creative Suite as an upgrade from CS3 at the prices published at that time. "
    Okay cool, hmm what this? Adobe is asking me if I want to IM with live costumer service agent, sure why not? Then the conversation started and I asked her my question about using my CS4 license for commercial use, she asks for my product code and email to verify my product, then informs me I can purchase the upgrade version of CS5 and use that for commercial, okay great, but not really answering my question. I reword it and give her a link to that FAQ page it goes like this. ..
    "[CS Rep] : [My name], I would like to inform you that Adobe Student and Teacher Editions are not allowed for
    commercial use.
    [CS Rep] : However, you can upgrade your current software to a normal upgrade version, and you can continue
    using it for commercial purpose.
    [Me] : Then is the FAQ page mistaken? Because it is very misleading if it is. But thank you for the information.
    [CS Rep] : You are welcome.
    [CS Rep] : I apologize for the misleading information in the FAQ."
    . .And after that, I went back to being confused.
    SO my questions are. . . Can I or can't I use my Adobe Creative Suite 4 student licensing for commercial purposes? and If I purchase a Student Licensing of CS5 can I use that for commercial purposes as well?
    Sorry for the long post, I just want to be perfectly clear on what I can and can not do with my purchase.

    The rules differ in various parts of the world. In North America you can use it for commercial work.
    There are no student/academic upgrades. The pricing is so low that in many cases you're better off buying another full student license but you are eligible for upgrade pricing for commercial versions once you're out of school.
    You may not transfer the student license in any way.
    Bob

  • Calling function from Backing Bean or JSP page

    We are on Jdeveloper 10.1.3.3.0, ADF Faces, JSF Faces .., Currently there is a function call from Javascript event (onmouseover) in the JSP page. I want to call this function from a backing bean or JSP page, as I have to pass some values to this function.
    For Ex., I have a function call like return submit('A','B','Test'); on the Javascript event (onmouseover) in jsp page. I want to remove this function from the javascript event and call from backing bean or jsp page to pass some values into the submit() function. I appreciate if anyone can give some example of how to call this function from backing bean or jsp page in the <SCRIPT> or <SCRIPTLET>
    Thanks,
    Ram

    A use case would be helpful so that we can get a better idea of what you want to do.
    As a general rule, there is no way to call a client side Javascript function from a backing bean, which is server side. However, there are ways to inject information from a backing bean into your Javascript call. For instance, I have an application that uses Google Maps API. It has an onload call to a Javascript function that builds the map and designates it's center point. The center point comes from a backing bean as latitude and longitude properties. So here is my body tag:
    <afh:body onload="initialize(#{backing_searchResults.latitude},#{backing_searchResults.longitude},#{searchCriteria.distance})"
              onunload="GUnload()">onload calls the Javascript function called initialize, and passes the latitude, longitude, and distance from the bean. Is the function really being called from my backing bean? No - the parameters are hard coded into the onload event code when the page is rendered. Does it do the job? Sure it does.

  • HP L7780 Printing - Two-sided and Multiple pages

    The HP L7780 printer is capable of printing two-sided pages and multiple pages per page (e.g. two-up on a single sheet). This works just fine with my WIndows XP systems, but not with my BRAND NEW Pro! I've installed the latest drivers from HP ... any help here?

    Is any of this helpful?
    http://tinyurl.com/b2kjco
    The URL above goes to ...
    http://h10025.www1.hp.com/ewfrf/wc/document?docname=c00874428&jumpid=otrecdoc/c01463616/en_us/c00874428/loc:2&custom_solutionid=rdc01463616&lc=en&dlc=en&cc=us

  • How would I insert custom HTML built in a managed Backing Bean into a page?

    I believe I could solve a project requirement if I could generate/build custom HTML in a managed Backing Bean and insert or place the output between f:verbatim elements.
    The custom HTML output would be similar to:
    <ul id="menu" class="view">
    <li>New Search</li>
    <li>Subscriber
    <ul>
    <li>Device List
    <ul>
    <li>New Device</li>
    <li>Device</li>
    </ul>
    </li>
    <li>Inbox List</li>
    <li>Resend</li>
    </ul>
    </li>
    </ul>Looking at the JSF 1.1_01 API, I don't believe there is a placeholder element?
    What is the best approach to do this?
    Thanks,

    This is exactly what you want:<h:outputText value="#{myBean.htmlString}" escape="false" />where getHtmlString() just returns a plain String object with the HTML in it.
    A custom component would be a more clever solution anyway.

  • Just bought a Nikon d750 and confused about adobe LR4 and PS6 support for the RAW files. I have DNG 8.7 but wondering if LR and PS will import direct soon Thanks for any advice

    Just bought a Nikon d750 and confused about adobe LR4 and PS6 support for the RAW files. I have DNG 8.7 but wondering if LR and PS will import direct soon Thanks for any advice

    Support for the Nikon D750 was introduced in the latest version of LR 5.7 and ACR 8.7 on Novemder 18th 2014.
    Further updates to LR 4 were stopped when LR 5 was released on June 9th 2013. No further updates for bug fixes and new camera support.
    Nada, LR 4 will never support Nikon D750. The Nikon D750 was introduced into the market in September 2014 some 15 months after further development of LR 4 was discontinued.
    You can use the Adobe DNG program (free download for the package) to convert the Nef (raw) files from your Nikon D750 to the Adobe DNG format which will permit you to import those into LR 4. This is the crutch provided by Adobe to allow for the processing of raw files with outdated versions of LR and ACR.
    You can also update the ACR plugin for PS CS6 to version 8.7 which can also work with the raw files from the D750. For direct support in Lightroom you will need to upgrade (paid) to version 5.7.

  • Can I use the same class as a page backing bean and a lifecycle listener

    Hi everyone
    I have code in a backing bean that executes as a value change listener. What I want to do is have this code execute on first page load. So what I am asking is:
    if I implement the PagePhaseListener interface on the backing bean class, will I be able to access the #{bindings} object during the beforePhase() and afterPhase() methods.
    Thanks in advance
    Thanassis

    Hi,
    yes, and it is documented here
    http://download-uk.oracle.com/docs/html/B25947_01/bcdcpal005.htm#sthref831
    Frank

  • Cannot save beans in a session OR use the same beans in multiple pages

    Hi all I use these code to my jsp file to create a session and store a bean.
    Unfortunately, the session cannot store the beans so that I can use them in the next page.What did I omit? Regardless the session scope, can I use request scope beans and with jsp:forward use them in multiple page? (I have tried it but it doesn't work).
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@page session="true"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%
    String nextPage = request.getParameter("np");
    if(nextPage.equalsIgnoreCase("checkDate")){
    %>
      <jsp:useBean id="checkDate" scope="request" class="essex.kkarad.beans.checkDateBean" />
      <jsp:setProperty name="checkDate" property="*"/>
    <%
        checkDate.validate();
    %>
    <jsp:forward page="Availability.jsp"></jsp:forward>
    <%
    } else if(nextPage.equalsIgnoreCase("checkRooms")) {
    %>
    <jsp:useBean id="checkRooms" scope="request" class="essex.kkarad.beans.checkRoomsBean" />
    <jsp:setProperty name="checkRooms" property="*"/>
    <%
       if(!checkRooms.validate()){
    %>
    <jsp:forward page="Availability.jsp"></jsp:forward>
    <%
    %>
    <%
    %>

    You should also be encoding the URL so that you don't have to worry about loosing the session if the user has cookies turned off:
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@page session="true"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%
      String nextPage = request.getParameter("np");
      String availabilityPage = response.encodeURL("Availability.jsp");
      if(nextPage.equalsIgnoreCase("checkDate")){
    %>
      <jsp:useBean id="checkDate" scope="session" class="essex.kkarad.beans.checkDateBean" />
      <jsp:setProperty name="checkDate" property="*"/>
    <%
        checkDate.validate();
    %>
    <jsp:forward page="<%=availabilityPage%>"></jsp:forward>
    <%
      } else if(nextPage.equalsIgnoreCase("checkRooms")) {
    %>
    <jsp:useBean id="checkRooms" scope="session" class="essex.kkarad.beans.checkRoomsBean" />
    <jsp:setProperty name="checkRooms" property="*"/>
    <%
       if(!checkRooms.validate()){
    %>
    <jsp:forward page="<%=availabilityPage%>"></jsp:forward>
    <%
    %>
    <%
    %>

  • Calling a method in backing bean whenever a page is loaded/reloaded

    Hi,
    What is the best way to call a certain method in a backing bean whenever the jsp page is reloaded?
    I have a managed bean that provides the data for a form and the bean gets it's data from a SQL DB. I want the bean to reload the data from the DB when and only when the page is loaded or reloaded. (I.e. it should the call method loadData() )
    What is the best way to do this?
    /R

    If the bean is request scoped, just call the logic in the init block or in the constructor, or even in the accessor.
    If the bean is session scoped, call the logic in the accessor.
    http://balusc.xs4all.nl/srv/dev-jep-dat.html might give some insights.

  • JSF Page -- Backing Bean -- Non-JSF Page ...

    Hi
    I have a JSF page where the user enters data and submits by clicking on the Submit button. My backing bean then takes the data and processes it. After successful processing, I want to direct the user to a non-JSF page.
    What is the best way of achieving this?
    Thanks

    I am doing the following to get the desired effect now:
    FacesContext ctx = FacesContext.getCurrentInstance();
    ExternalContext ectx = ctx.getExternalContext();
    HttpServletResponse response = (HttpServletResponse)ectx.getResponse();
    String nextUrl = "....";
    response.sendRedirect(nextUrl);
    Is there a better way?

  • Confusion about UEFI/BIOS and GPT/MBR compatibility issues

    So a user said in another post that they were NOT able to boot in UEFI mode and install Fedora even though it is UEFI compatible.  But this person was able to useLegacy mode and install Fedora, and furthermore, was able to "keep the Windows partition."  I'm guessing that means that Win 8 that came with it, which would be installed in UEFI/GPT mode, correct?  I'm specificly referring to the Y510P but from what I understand *every* laptop that comes preinstalled with Win 8 must be UEFI/GPT.
    So the way I understand it is that the installed Fedora is in "BIOS"/GPT mode rather than "BIOS"/MBR mode because you can't have both GPT and MBR on the same disc.
    I have just started learning about this UEFI/BIOS and MBR/GPT nonsense, and it's going to drive me crazy until I finally understand it. So I guess what I'm asking is:
    1) When I get my y510p I assume it will be in UEFI/GPT mode. Can I install non-UEFI distros alongside it as I take it was done with Fedora?
    2) If I install a linux distro alongside Win 8, do I have to worry about compatibility issues with a drive that is in GPT format? Or does the MBR/GPT issue have nothing to do with it, so I don't have to worry about ever changing my drive to MBR?  
    For example, I read that Win 7 must be installed either as BIOS/MBR or UEFI/GPT.  This can not be mixed and matched.  This means that if I could not get the Windows 7 installer to boot in UEFI I would have to install as MBR.  This also means I would have to format the drive and reinstall Win 8 on the MBR.  
    So my question is do other OS's like Linux have these restrictions?  (For example, if a particular distro will not boot in UEFI and therefor MUST install on MBR)
    3) I have a pendrive with YUMI installed with a ton of distros/tools/Win installs/etc. (It is a USB boot tool like unetbootin that allow you to add multiple bootable images.) When I tried it recently on my dad's laptop.  I have used it many, many times with my older computers, none of which were UEFI.  It works great.  Now that I've had a recent encounter with my dad's ASUS Windows 8 computer (not with the y510p yet) I found out that UEFI seems to be complicating the crap out of things (for me, at least.)
    So when I used this computer, I noticed that when I boot (with legacy mode enabled) and enter the "boot selection screen" in order to boot with USB, I have two options a) UEFI:"name of usb" and b) "name of USB". The UEFI option would NOT boot, but it would boot without the UEFI: option.
    So does this mean that I am booting in non-UEFI mode and once I have booted this way and choose a distro to install that it CANNOT install in UEFI mode?  I recently saw a tool called Rufus that I have yet to try that has an option to set the bootable USB to UEFI, so that would possibly work if I wanted to install a UEFI compatible distro (Arch linux is what I'm wanting.)
    4)  If installing a UEFI compatible distro (such as Arch) requires that the USB device be able to boot in UEFI mode has anyone been able to do this?  Has anyone even been able to boot a device in UEFI mode to do *anything* such as run a live linux?  
    I'm 99% sure I would be able to boot in legacy mode and run a live linux (because I did so on my dad's computer) but the problems arise when I consider how to INSTALL.
    I would really like to know the answers to these questions (as scattered as they are.) Any help would be appreciated!
    Unnecessary info:
    (I started learning about BIOS/UEFI and MBR/GPT the hard way a few days ago by trying for hours to install Windows 7 on my dad's Windows 8 laptop because I could NOT get Win 7 installation to work...it kept asking for drivers before I could install until I finally used the Windows USB install tool, put the stick in a different USB, AND formatted the drive as MBR because Windows 7 would NOT install on the existing GPT drive until I used diskpart.exe -clean. And I have read that Win 7 64 bit will work fine on a UEFI/GPT setup. I used the Windows 7 USB boot tool which did NOT give me a UEFI: and regular option. It showed up simply as "name of usb" without a UEFI in front. Since I read that Windows 7 must either be in BIOS/MBR mode or UEFI/GPT mode that this drive would not boot in UEFI mode, and I don't know why...Although I believe I read that Win 7 cannot be installed from a USB in UEFI/GPT mode, only BIOS/MBR.  UEFI/GPT mode requires a DVD install but I did not have a drive to test this.)

    I have a Y510p which is running dual boot Windows 8.1 and Arch Linux.   I think that it is strongly advised to do plenty of reading ahead of any install if you will be using UEFI and Linux so that you understand all the issued before making critical changes to the existing system.
    Yes, if the machine comes with Windows 8 (as mine did) then the disk will be formatted with a GPT partition table (instead of the old MBR partitioning scheme), and will boot using UEFI. If you are going to try to keep the existing Windows 8 system and add Linux then you will need to keep the disk with its GPT partition table and partition structure, but you can shrink the Windows 8 C: drive to make space for the Linux partitions that are needed ( a root partition and at least a /home and/or /opt partition and possibly a linux swap partition also ).  If you want to boot the Linux install via UEFI then you can simply add the required boot directory to the EFI System Partition (ESP).
    However it is very important that before trying to do any linux install that you switch off Fastboot from within WIndows 8 (or 8.1). Also most Linux distributions are in some difficulty booting using Secure Boot, though a few such a Ubuntu and Fedora are supposed to be able to do so. Hence it is much easier to work with Linux if Secure Boot is first switched off from the BIOS settings menu.
    The order of operations that I used was;
    1) Switch off Secure Boot from the BIOS - and boot back into the Windows 8 system to check that it boots OK.
    2) With Windows 8 running go into the settings and switch off Fastboot (which does a hybrid suspend when it shuts down instead of a full normal shutdown - if you don't do this then the memory gets overwritten when booting Linux in the future which means booting back into Windows will fail). 
    3) Reboot back into WIndows and check all is well, and if so then use the disk management facility within Windows 8 to shrink the C: drive to make room for the Linux partitions.
    4) Reboot to check Windows 8 still boots OK.  
    5) If you are going to update to Windows 8.1 then do so, and then update everything once it is booted (it is a huge update and takes ages!). Once done then you will likely have to update drivers for the graphics cards, the clickpad and possibly the wireless chip and ethernet chip. I found that I needed to get drivers that were newer than were available on the Lenovo website, by going to the relevant hardware manufacturer website (eg for synaptics for the clickpad). Then spent a week or so in the evenings getting Windows 8.1 configured the way I like it.
    6) Then I did a lot of reading about the various options for the boot manager that would suit a UEFI boot for a dual boot system for Windows 8.1 and Arch Linux and there was a choice of Grub, Gummiboot, rEFInd, and others - and after reading the details I decided on rEFInd as my boot manager which can boot not only any new Arch Linux install but automatically finds the Windows UEFI boot files and presents the options in a nice graphical window once the system gets past POST at bootup.
    7) It was important to check which partition was the ESP and to know what partitions I needed to create for the Arch Linux system.  Then I went ahead and booted from a usbkey to a uefi install system, and very carefully proceeded with a standard Arch Linux install, being particularly careful to know where to put the rEFInd boot manager files and the kernel and initrd files. Also I used efibootmgr to write the appropriate NVRAM boot entry in the motherboard memory so that the uefi boot system knows where to find the rEFInd uefi boot files in the ESP.
    8) Once complete the system boots to Arch Linux as the default, with a nice Windows icon which you can select with the arrow keys within the boot timeout period (default 20 seconds).
    I noted also that it is possible to create boot stanzas in the rEFInd boot manager config files which allow rEFInd to chain load other Linux systems or even other bootloaders if you wish - so it is very flexible. So if you want to you could install a grub standalone set of diretories/files so that if the normal linux boot fails then you can select the grub icon from rEFInd and chainload grub to boot either the same Archlinux install, or point to a third linux distribution if you have more partitions containing that third install which might be Ubuntu or Mint or ....
    Either way although getting to understand how uefi boot works is a learning curve it is actually generally simpler than the old legacy BIOS boot. With uefi you no longer need an MBR on the drive, and only a suitable EFI System Partition which has to be VFAT formatted. However if you want to have one of the linux distributions booting from legacy MBR then you need to create an MBR at the start of the drive - so you would need to move the start of the first partition and create a suitable sized Master Boot Record otherwise MBR boot can't work. If you do that then of course you have to be careful if the Windows partition is the one being re-sized that it doesn't mess up the Windows boot! However since using uefi to boot rEFInd allows a chainload to grub/gummiboot or other bootloaders then there should be no need to mess with MBR booting if you go down that route.
    If you are interested in rEFInd then the author Rod Smith has a good set of documentation that describe the details at http://www.rodsbooks.com/refind/
    He is also the author of a really excellent disk partitioner for GPT disks - http://www.rodsbooks.com/gdisk/
    Clearly it is necessary to read up on the boot facilities available for any linux distribution that you plan to put on the system.
    One nice thing is that uefi boot with an efistub supported kernel build is really fast on the Y510p. My system boots Arch linux in about 7 seconds to the KDE login prompt once the POST is complete and that only takes a couple of seconds.  Of course Windows is much slower once it is selected at the rEFInd screen and takes somewherearound 40 seconds or so to boot, but at least Linux is super fast!
    Anyway I hope that this helps.

  • Print: zoom AND multiple pages

    Hi,
    I need to print a 4 pages long pdf on one single two-sided page. To do that, i do the multiple pages option: put 2 pages per printed page (2 on the front page, 2 on the back side). Because every single of these four pages is already in very small font size (every pages contains 16 slides), I need to zoom a bit, so that I can erase the most unnecessary space possible (the white marges). Without the zoom, it's written so small that I can't read it; by removing the marges, I can enlarge a bit the space and make it readable.
    With the new pdf version, I can only chose between putting 2 pages on one page, or zoom; not both at the same time. Can somebody tell me how I can to both at the same time please?
    I hope I could clearly expose my problem and that somebody can help me.

    Quite imposing has features that allow you to minimize the space between your pdf pages that are being imposed for the same piece of paper.
    http://www.Quite.com

  • So confused about backing up bookmarks

    I lost all my bookmarks when my computer crashed. I thought they would have been on my backup drive, but they were not.
    Some people say export to a htlm file, then put in documents, then when you backup, they will be there.
    'Then I have heard about backing them up to a json file. i tried that and it wouldn't open up from my desktop.
    So i don't know what to do. I cannot afford to lose them again. I am slowly building them back up, but had a lot of medical sites on there.
    What is the best way and safest way.
    I have windows 8.
    Thanks.

    If you use the above mentioned method and set the browser.bookmarks.autoExportHTML to true then Firefox will create an automatic HTML backup each time you close Firefox in addition to the JSON backup that is created once each day when you start Firefox.
    So this HTML back up always has the latest changes and you do not need to create one yourself.<br />
    This HTML backup is created by default in the Firefox profile folder as bookmarks.html, but you can specify its name and location via the browser.bookmarks.file pref.
    This browser.bookmarks.file pref doesn't exist by default and thus needs to be created as a new Boolean pref via the right-click context menu of the <b>about:config</b> page (right-click: New > String).
    You can enter a normal file path like C:\<backup directory>\bookmarks.html and Firefox will automatically escape (double the backslashes) for you when saving the pref to prefs.js.<br />
    If you are OK with leaving the file in the Firefox profile folder then you can omit this step.
    *http://kb.mozillazine.org/about:config
    See also:
    *http://kb.mozillazine.org/Export_bookmarks
    You can use this button to go to the Firefox profile folder:
    *Help > Troubleshooting Information > Profile Directory: Show Folder (Linux: Open Directory; Mac: Show in Finder)

Maybe you are looking for