For loop in JSF View Pages

Hi ALL,
How can I work with iteration operation in JSF View Class as JSP scriptlets won't work in it
thanks
Sudhakar

Hi Sudhakar,
Thank you for explaining your requirement so clearly.
The task you are trying to achieve is not possible in the jsp source. The reason being that Creator has a page backing bean where the component declarations are done. Hence adding components via the jsp source would not work as the page backing bean is essential for the working of the application.
The solution for your problem would be something like this:
Create an integer property named counter in your session bean and initialise it to 0.
Add a gridpanel to your page.
In your page backing bean (Page1.java) constructor add the following code
for(int i=0; i<array.length;i++){
SessionBean1 sb = getSessionBean1();
int ctr = sb.getCounter();
UIComponent parent = gridPanel1;
HtmlSelectBooleanCheckbox chkBx = new HtmlSelectBooleanCheckbox();
chkBx.setId("checkBox" + ctr);
parent.getChildren().add(chkBx);
sb.setCounter(ctr+1);
The above code just uses one for loop. You could extend it to mak use of nested loops.
I hope this helps
Cheers
Giri :-)
Creator Team

Similar Messages

  • "save for web and devices" view page is cut off

    When I go to Save For Web to optimize, the screen cuts off at the bottom where  the Save and Quit buttons are.  It won't let me scroll down, drag the screen  smaller, max or minimize. The only way to get out of the screen is to  Ctrl-alt-del and shut down Photoshop. 
    thanks for the help

    Have you tried changing the screen resolution?
    Are you on a laptop?

  • Error  while parsing JSF jspx page when including javascript  loops

    Hi All,
    I have a jspx document which contains jsf tags including trinidad tags. I have added a javascript function in the page, which contains a for loop statement, however when I run the page I get an error
    com.sun.facelets.FaceletException: Error Parsing /xAdvisorWeb/bundles/receivetask/manageinbox.jspx: Error Traced[line: 48] The content of elements must consist of well-formed character data or markup.
    at com.sun.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:234)
    at com.sun.facelets.compiler.Compiler.compile(Compiler.java:104)
    at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:192)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141)
    at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93)
    at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
    at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553)
    at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:178)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:995)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:930)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:326)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:290)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:213)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:90)
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:761)
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:673)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:498)
    at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464)
    at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
    Please note that normal javascript code has worked in my jsf page, this problem only occurs only when I add for loop or while loop in the javascript function. Can we not add javascript loops in a jsf page? Is there something else I need to include?
    This is the relevant code snippet :
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:tr="http://myfaces.apache.org/trinidad"
    xmlns:ch="http://www.chordiant.com/jsf"
    xmlns:chrd="http://chordiant.com/jsf/chrd">
    <f:view locale="#{preferLocale.locale}">
    <f:verbatim escape="true">
    <script>
    function validateInput(){
    for(int i=0;i<3;i++)
    alert('Hi');
    return false;
    </script>
    </f:verbatim>
    <tr:commandLink styleClass="ttmBtnCmdLink" onclick="return validateInput();"
    action="#{manageInbox.executeTaskForAssignedWorkItems}">
    <tr:outputText value="#{msgs.execute_btn}"
    styleClass="ttmBtnOutTxt" />
    </tr:commandLink>
    Any help will be much appreciated.
    Thanks in advance,
    Debajyoti

    M-Y wrote:
    replace "<" with "& l t ;"
    remove spaces in "& l t ;" when u paste it in ur code
    in my previous 2 replies i entered it with out spaces and it was getting converted to "<"The forum engine parses HTML entities. So just replace the & by its HTML entity &amp; and it will work: &lt;.
    But no, this is not going to work. JavaScript doesn't recognize HTML entities as operators.
    Follow the suggestion rlubke gave. Or, even better, put all Javascripts in its own .js file and include this file in the HTML head.

  • Link for Create Sub-Accounts Tool keeps looping back to Overview Page

    Hello,
    I need to create an email sub account but the link for the "Create Sub-Accounts Tool" just keeps looping back to the over view page. Where is the tool actually located?
    Thank you in advance for your time and attention.

    Ok, after *much* more fiddling around this place ( It was a trial just to get logged in -eeeesh!  ) I finally found a link for it here that seems to work:
    https://www22.verizon.com/residentialhelp/fiosinternet
    but after going through all of the steps, I got:
    "We have encountered an unexpected error, Please call customer service or try again later." 
    Oh and live chat is not available.

  • How do I setup magazine to view pages consecutively, but print for double sided 11x17?

    I have a quarterly newsletter I've begun.  I set it up as (8) 11x17 pages with (2) 8-1/2" x 11" page views per 11x17 page, so that when they print double sided, there are consecutive. The problem is that when I am trying to navigate from page to page, they are not consecutive on the screen. Is there a way to set up the pages at 8-1/2" x 11" consecutively in InDesign, but send to printer for two sided 11x17 and have the pages come out in the right place?
    Not sure that I am describing properly. For instance viewing an 11x17 page (Page 1 as far as InDesign is concerned), the right half is Page 1, and the left half is page 16; or (page 2 in InDesign) is page 15 on the left side, and page 2 on the right side.  This all prints perfectly, but navigating it during layout is extremely cumbersome.  Also, printing for general public PDF viewing is impossible.
    Thanks, Rick

    LOL - That for sure I knew. I just didn't know what to do about it.  I checked Acrobat...but I never really noticed that "booklet" option before, and right now the magazine isn't setup right, so I can't tell if it's working.  will it know that page 1 and page 16 go on the same side of one 11x17 sheet, and pages 2 and 15 go on the other side of that same page when printing two-sided?

  • Error occurred in deployment step 'Uninstall app for SharePoint': Only users who can View Pages can list Apps

    While deploying the SharePoint Hosted App I am facing the issue  'Uninstall app for SharePoint': Only users who can View Pages can list Apps"
    - Provided the permissions for App Management and Subscription Services as well as DB.
    - Added into Host web as SC Administrator
    Thanks in Advance.

    Hi,
    The user you are running with Visual Studio should have read permission on the pages of SharePoint web you are trying to deploying your app.
    I suggest you add the login user to the SharePoint web in the “Site Settings”->”People and Group”.
    Here is a similar thread for your reference:
    http://sharepoint.stackexchange.com/questions/68590/error-occurred-in-deployment-step-uninstall-app-for-sharepoint-only-users-who
    More reference:
    Step by step How to configure environment for app development:
    http://gianespo.wordpress.com/2014/01/30/step-by-step-how-to-configure-environment-for-sharepoint-app-development/
    Best regards
    Zhengyu Guo
    TechNet Community Support

  • For each loop start on odd page number

    Hy,
    I've an rtf template with a for each loop. I want to skip a page between each loop and to start each new loop on an odd page number (duplex printing). It's easy to skip a page but i don't know how to start each loop on an odd page. i've tried this before or after my for-each
    <?section:force-page-count;'end-on-even-layout'?>
    but it doesn't work for me.
    Sorry for my english
    regards

    One way of doing this is to create an object (B_1) at the end of the report and only have the object print if the current page is an odd page.
    - To force the page break, you need to set the "page break before" property against "B_1".
    - To test the page number in the format trigger use the srw.get_page_num(page_num out number) built-in function.
    You need to make sure that "B_1" is formatted after all the other objects in the layout. One way of ensuring this is to create a frame around all the other objects and make the frame variable. Any objects that come below the frame will be formatted after the variable frame.
    There is still the issue of any margin objects. Since margin objects print before any objects in the body, your margin objects will still print in the overflow page. However, this may be what you want if you're printing the page number in the margin.

  • 'View Page Source' option not appearing for any of the pages

    Hi All,
    I'm using FireFox 12 on my Win-XP machine. I am unable to see the option 'View Page Source' for any of the pages. I tried both right clicking on the page + wandering around 'Tools/WebDeveloper', 'Tools/Options' and 'View/..' etc., but couldn't find a solution. Please help me !!
    Thanks in advance.

    You should see them via these methods:
    *Firefox > Web Developer > Page Source
    *Tools > Web Developer > Page Source (Ctrl+U)
    *Right-click on a web page to open the context menu and select View Page Source
    Start Firefox in <u>[[Safe Mode]]</u> to check if one of the extensions or if hardware acceleration is causing the problem (switch to the DEFAULT theme: Firefox/Tools > Add-ons > Appearance/Themes).
    *Don't make any changes on the Safe mode start window.
    *https://support.mozilla.org/kb/Safe+Mode
    *https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes

  • I try to create an html for IPad. The html page contains an element overlapping a video, now it works as for view but the focus is still with video. This denies the event of overlapping element from occuring. Can please anyone help to solve this issue?

    I try to create an html for IPad. The html page contains an element overlapping a video, now it works as for view but the focus is still with video. This denies the event of overlapping element from occuring. Can please anyone help to solve this issue?

    Hello,
    '''Try Firefox Safe Mode''' to see if the problem goes away. Safe Mode is a troubleshooting mode, which disables most add-ons.
    ''(If you're not using it, switch to the Default theme.)''
    * On Windows you can open Firefox 4.0+ in Safe Mode by holding the '''Shift''' key when you open the Firefox desktop or Start menu shortcut.
    * On Mac you can open Firefox 4.0+ in Safe Mode by holding the '''option''' key while starting Firefox.
    * On Linux you can open Firefox 4.0+ in Safe Mode by quitting Firefox and then going to your Terminal and running: firefox -safe-mode (you may need to specify the Firefox installation path e.g. /usr/lib/firefox)
    * Or open the Help menu and click on the '''Restart with Add-ons Disabled...''' menu item while Firefox is running.
    [[Image:FirefoxSafeMode|width=520]]
    ''Once you get the pop-up, just select "'Start in Safe Mode"''
    [[Image:Safe Mode Fx 15 - Win]]
    '''''If the issue is not present in Firefox Safe Mode''''', your problem is probably caused by an extension, and you need to figure out which one. Please follow the [[Troubleshooting extensions and themes]] article for that.
    ''To exit the Firefox Safe Mode, just close Firefox and wait a few seconds before opening Firefox for normal use again.''
    ''When you figure out what's causing your issues, please let us know. It might help other users who have the same problem.''
    Thank you.

  • For some reason my 09' pages will not view documents created in Word 10'  any suggestions?

    For some reason my 09' Pages will not open any documents from 10' Word.  It simply opens up blank.  Any suggestions?

    I updated my pages and os.  I am currently running 09' pages and os 10.6.7.  The link I gave you earlier was not correct.  I have attached one I just opened up with microsoft word on another computer.  My pages opens up but is blank.  The link is below:
    https://www.vendorportal.ecms.va.gov/FBODocumentServer/DocumentServer.aspx?Docum entId=191194&FileName=VA-255-11-RP-0197-0004000.doc
    The only other thing is that word opened it up in compatibility mode and said that the document originated from the internet.  Could this be something that is causing pages to not open?  Thanks for all of your help.

  • Any lifecycle methods for view/page that can be triggered during Navigation ?

    Hi ,
    Say i have 2 views. I navigate from 1st view to 2nd View using App.to method. Now is there any lifecycle method that i can trigger in the view/page once the app navigates to 2nd view ?
    Regards
    Sakthi

    Hi.
    U mean go back to 1st view?
    Regards
    Pavan

  • How to fix gateway error in a View Page?

    I have created an override view page and I need to add a button or link which should take the user to a page in different server. I am getting gateway error. The sample code as follows. Any thougts will be helpful. Thanks in advance.
    string sUrl = "<pt:gatewayLink pt:href='http://appserver/step1.asp' pt:objectID='206' pt:classID='35' xmlns:pt='http://www.plumtree.com/xmlschemas/ptui/'/>"; HTMLAnchor myAnchor = new HTMLAnchor(sUrl); myAnchor.AddInnerHTMLString("Add a Logo"); myCell.AddInnerHTMLElement(myAnchor);

    i think, something is wrong in the approach itself.
    when you include the code, you do not need to create a new
    instance of Hmenu. Instead, you can simply use lnkBar .addChild(),
    because the this code is of your Hmenu itself.
    But i suggest you to use dataprovider for the linkbar instead
    of looping through the categories and adding the child.
    you just declare xmlData as Bindable and provide it as
    dataProvider of the linkbar.
    hope it works.

  • Custom tag for Marquee in JSF

    Hi,
    I am trying to develop a custom tag for Marquee in JSF, my usecase is to display a value from managed bean(Dynamically). please find the code below and guide me where i have made mistake
    regards
    Sandeep
    Component class:
    package customtags;
    import javax.el.ValueExpression;
    import javax.faces.component.UIComponentBase;
    import javax.faces.context.FacesContext;
    public class Marquee extends UIComponentBase {
         public static final String COMPONENT_TYPE = "marqueecomp";
         public static final String RENDERER_TYPE = "marqueeRenderer";
         private Object[] _state = null;
         private String value;
         public String getValue() {
              if (null != this.value) {
                   return this.value;
              ValueExpression _ve = getValueExpression("value");
              return (_ve != null) ? (String) _ve.getValue(getFacesContext()
                        .getELContext()) : null;
         public void setValue(String marquee) {
              this.value = marquee;
         public String getFamily() {
              // TODO Auto-generated method stub
              return COMPONENT_TYPE;
    //     public void encodeBegin(FacesContext context) throws IOException {
    //          ResponseWriter writer = context.getResponseWriter();
    //          writer.startElement("marquee", this);
    //          writer.write(getValue());
    //          writer.endElement("marquee");
         public void restoreState(FacesContext context, Object state) {
              this._state = (Object[]) _state;
              super.restoreState(_context, this._state[0]);
              value = (String) this._state[1];
         public Object saveState(FacesContext _context) {
              if (_state == null) {
                   _state = new Object[2];
              state[0] = super.saveState(context);
              _state[1] = value;
              return _state;
    Tag Class:
    package customtags;
    import javax.el.ValueExpression;
    import javax.faces.component.UIComponent;
    import javax.faces.webapp.UIComponentELTag;
    public class MarqueeTag extends UIComponentELTag {
         protected ValueExpression marquee;
         public String getComponentType() {
              // TODO Auto-generated method stub
              return Marquee.COMPONENT_TYPE;
         public String getRendererType() {
              // TODO Auto-generated method stub
              return Marquee.RENDERER_TYPE;
         * protected void setProperties(UIComponent component) {
         * super.setProperties(component); Marquee marqComp = (Marquee) component;
         * if (marquee != null) { marqComp.setValue(marquee); } }
         protected void setProperties(UIComponent component) {
              super.setProperties(component);
              Marquee marqComp = null;
              try {
                   marqComp = (Marquee) component;
              } catch (ClassCastException cce) {
                   throw new IllegalStateException(
                             "Component "
                                       + component.toString()
                                       + " not expected type. Expected: com.foo.Foo. Perhaps you're missing a tag?");
              if (marquee != null) {
                   //marqComp.setValueExpression("value", marquee);
                   marqComp.setValue("fsdfsdfsdfsdfsd");
         * @return the marquee
         public ValueExpression getMarquee() {
              return marquee;
         * @param marquee
         * the marquee to set
         public void setMarquee(ValueExpression marquee) {
              this.marquee = marquee;
    *.tld file*
    <?xml version="1.0" encoding="UTF-8"?>
    <taglib xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
         version="2.1">
         <tlib-version>1.0</tlib-version>
         <short-name>marqueecomp</short-name>
         <uri>http://tags.org/marquee</uri>
         <tag>
              <name>marqueeTag</name>
    <tag-class>customtags.MarqueeTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
    <description><![CDATA[Your description here]]></description>
    <name>id</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
    <description><![CDATA[Your description here]]></description>
    <name>value</name>
    </attribute>
         </tag>
    </taglib>
    Renderer class:
    package customtags;
    import java.io.IOException;
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.context.ResponseWriter;
    import javax.faces.render.Renderer;
    public class MarqueeRenderer extends Renderer {
         public void encodeBegin(final FacesContext facesContext,
    final UIComponent component) throws IOException {
    super.encodeBegin(facesContext, component);
    final ResponseWriter writer = facesContext.getResponseWriter();
    writer.startElement("DIV", component);
    /*String styleClass =
    (String)attributes.get(Shuffler.STYLECLASS_ATTRIBUTE_KEY);
    writer.writeAttribute("class", styleClass, null);*/
    public void encodeEnd(final FacesContext facesContext,
    final UIComponent component) throws IOException {
    final ResponseWriter writer = facesContext.getResponseWriter();
    writer.endElement("DIV");
    in Faces-Config:
    <component>
              <display-name>marqueecomp</display-name>
              <component-type>marqueecomp</component-type>
              <component-class>customtags.Marquee</component-class>
              <component-extension>
    <renderer-type>marqueeRenderer</renderer-type>
    </component-extension>
         </component>
         <render-kit>
    <renderer>
    <component-family>marqueecomp</component-family>
    <renderer-type>marqueeRenderer</renderer-type>
    <renderer-class>customtags.MarqueeRenderer</renderer-class>
    </renderer>
    </render-kit>
    In class path --->marquee.taglib.xml
    <?xml version="1.0"?>
    <!DOCTYPE facelet-taglib PUBLIC
    "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
    "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
    <facelet-taglib>
    <namespace>http://tags.org/marquee</namespace>
    <tag>
    <tag-name>marqueeTag</tag-name>
    <component>
    <component-type>marqueecomp</component-type>
    <renderer-type>marqueeRenderer</renderer-type>
    </component>
    </tag>
    </facelet-taglib>
    *.xhtml file*
    <html xmlns="http://www.w3.org/1999/xhtml"
         xmlns:ui="http://java.sun.com/jsf/facelets"
         xmlns:h="http://java.sun.com/jsf/html"
         xmlns:f="http://java.sun.com/jsf/core" xml:lang="en" lang="en"
         xmlns:a4j="http://richfaces.org/a4j"
         xmlns:rich="http://richfaces.org/rich" xmlns:mycomp="http://tags.org/marquee">
    <head>
    <title>DEBTDOC Home Page</title>
    <meta http-equiv="keywords" content="enter,your,keywords,here" />
    <meta http-equiv="description"
         content="A short description of this page." />
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="../css/common.css"></link>
    <script language="javascript" src="../script/common.js"></script>
    </head>
    <body>
    <f:view>
    <mycomp:marqueeTag value="hello World"></mycomp:marqueeTag>

    There exist the JSTL SQL taglib, but I don't recommend this. It should only be used for quick development and testing. For database connectivity, rather create a data layer with DAO classes which you on its turn just plug in your business layer (with servlets).

  • Has anyone successfully implemented the JSF Viewer with Facelets?

    We have recently started integrating Crystal into one of our web apps that is using JSF + Facelets + Seam.
    I've built a taglib for the jsf viewer and configured it in web.xml and faces-config. I'm pulling an IReportSource from a backing bean using com.crystaldecisions.reports.sdk.ReportClientDocument  and that is using a .rpt file stored on a directory. This all seems to be working, as I can step through the code and see the IReportSource being generated.
    However, when the page loads, I am seeing the crystal javascript being converted in the page source, but nothing is loading on the page. 
    Has anyone seen an issue similar to this tied to Facelets? I've seen numerous documentation on Crystal and JSP, but very little on JSF  or Facelets.
    Has anyone been able to get a setup like this or similar to work properly?
    I've also noticed an error when adding the viewer:
    java.io.IOException: Recover report client document state failed.
    at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.readExternal(SourceFile:1492)
    at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.readExternal(SourceFile:131)
    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
    I believe this to be related to me switching over to the serializable ReportClientDocument: com.crystaldecisions.sdk.occa.report.application.ReportClientDocument  versus using the nonserializable version.
    When using the non-serializable version, I am seeing a constructor issue with the JPEReportSource
    Exception: java.io.InvalidClassException: com.crystaldecisions.reports.reportengineinterface.JPEReportSource; no valid constructor
    Has anyone seen this issue before or able to offer any suggestions?

    Well, according to the tutorials I have seen on the internet, I believe CrystalReport was successfully implemented and tested with jsp, to have it working with Facelets, we need to do a little bit of work around. We need to make a new JSF custom component and assign it to an external renderer. then we can use it to view the report
    please follow these and it should work after then,
    1- bring the following jars into your libs
    commons-configuration-1.2.jar
    Concurrent.jar
    CrystalCommon.jar
    CrystalContentModels.jar
    CrystalDatabaseConnectors.jar
    CrystalFormulas.jar
    CrystalQueryEngine.jar
    CrystalReportEngine.jar
    CrystalReportingCommon.jar
    icu4j.jar
    jrcadapter.jar
    jrcerom.jar
    keycodeDecoder.jar
    MetafileRenderer.jar
    rasapp.jar
    rascore.jar
    rpoifs.jar
    serialization.jar
    URIUtil.jar
    webreporting.jar
    webreporting-jsf.jar
    xercesImpl.jar
    xml-apis.jar
    2- bring the folder "crystalreportviewers115" right under the "WebContent".
    3- implement the custom FacesComponent and make it extend the "UIReportPageViewer" as follows;
    import packagename.CustomReportRenderer;
    @FacesComponent ("packagename.newReportViewer")
    public class UIReportViewer extends com.crystaldecisions.report.web.jsf.UIReportPageViewer implements Serializable{
        public UIReportViewer () {
            this.setRendererType("packagename.CustomReportRenderer");
    4- implement the renderer and make it extend the "ViewerHtmlRenderer" as follows;
    @FacesRenderer(componentFamily="CrystalReports.DHTMLViewer", rendererType="packagename.CustomReportRenderer")
    public class CustomReportRenderer extends com.crystaldecisions.report.web.jsf.ViewerHtmlRenderer implements Serializable {
    5- make a new tag library xml file next to the web.xml so the application can find the tag configurations. name it "taglib.xml" and add the following inside it;
    <facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee"
        version="2.0">
        <namespace>http://new-jsf-custom-components/</namespace>
        <tag>
            <tag-name>ReportViewer</tag-name>
            <component>
                <component-type>packagename.newReportViewer</component-type>
                <renderer-type>packagename.CustomReportRenderer</renderer-type>
            </component>
        </tag>
    </facelet-taglib>
    6- configure the web.xml with the following
      <context-param>
            <description>
            State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>server</param-value>
        </context-param>
        <context-param>
              <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
            <param-value>/WEB-INF/taglib.xml</param-value>
        </context-param>
        <context-param>
            <param-name>crystal_image_uri</param-name>
            <param-value>../../crystalreportviewers115</param-value>
        </context-param>
    7- implement the reportViewer.xhtml and make sure you have the following;
    - in the tag libraries add the namespace schema xmlns:crystalnmcps="http://new-jsf-custom-components/"
    - add the new reportViewer component
    <crystalnmcps:ReportViewer reportSource="#{youController.reportSource}"  displayToolbarLogo="false" parameterFields="#{youController.parameterFields}"  allowParameterPrompting="false" />
    Now run your app.
    I hope this helps. good luck

  • Can't view pages in Hindi

    Hi, I'm unable to view pages in Hindi. I've looked for additional font packages but can't find them for Mac. I'm running OS 10.3.9, is that the problem?
    My friends can see http://www.bbc.co.uk/hindi/ in hindi, but I just see weird characters.
    Is there anything I can do about this?

    Is there anything I can do about this?
    Sure, you just need to add the font Devanagari MT. This is done by installing the AdditionalFonts.pkg which is found on the 3rd CD of a retail Panther set.

Maybe you are looking for