Custom tag setting a parameter as an array String[]

I would like to pass a number of bind variable as an array of strings to a custom tag.
So far I can pass an array to the tag in the following way:
<%
String[] bindv = {"1000","01010","EMP"};
pageContext.setAttribute("bindv",bindv);
%>
<jm:q2b bind="${bindv}"/>Is there a way to do this without using the scriptlet ?

The parameters are bind variable and usually are set from the http requestThe fact that they're bind variables doesn't make any difference. If they're passed in the request you can access them using jstl. You just need to do requestScope.bindv (replace bindv with the variable(s) name).
If you're using an array you must know how many variables are passed, so it's easy. If you don't know just put the variables in an array (or something similar) before you put them in the request and use the forEach tag.

Similar Messages

  • Custom tag - unable to find setter method error

    I see this compileException on IAS but not on BEA app server and iWS.
    JSPProvider.processJSPFile(): jsp=searchContent.jsp, org.apache.jasper.compiler.CompileException
    Unable to find setter method for attribute: input
    The reason is because the custom tag has a setInput() that takes a String parameter while the getInput() returns an InputStream.
    Should both get and set methods have the same type of parameters or is this a due to a bug in the app server ?

    I see this compileException on IAS but not on BEA app
    server and iWS.
    JSPProvider.processJSPFile(): jsp=searchContent.jsp,
    org.apache.jasper.compiler.CompileException
    Unable to find setter method for attribute: input
    The reason is because the custom tag has a setInput()
    that takes a String parameter while the getInput()
    returns an InputStream.
    Should both get and set methods have the same type of
    parameters or is this a due to a bug in the app server
    I was only going off info from the original post. The error specifically states "Unable to find setter method for attribute: input" with a lower case i for the input attribute. You also specifcally stated "The reason is because the custom tag has a setInput()" with a capital I for the setInput method. This would most definitely cause the error you were receiving. That is unless you corrected this between your original post and your followup testing.
    Cliff

  • Custom Tag using object as an attribute.

    I have read up on trying to pass an object as an attribute to a custom tag.
    Is it true that the only way to do this is to put the object, using a "key name" in the pageContext
    Then in the custom tag, set an attribute equal to the "Key Name"
    Then in the TagHandler, to do a lookup using the "Key Name"
    We can not just past objects into the attribute?
    And what is this about using EL or JSP2.0
    sorry sort of new to the whole game.

    Certainly you can pass objects to tags.
    However you need to use a runtime expression to do that.
    such as <%= expr %> or (with JSP2.0) ${expr}
    If you look at the JSTL library, it uses the EL and passes in objects all the time. However the EL actually accesses the page/request etc attributes as its variable space, so you are still technically using attributes.
    Is it true that the only way to do this is to put the object, using a "key name" in the pageContext
    then in the custom tag, set an attribute equal to the "Key Name"
    then in the TagHandler, to do a lookup using the "Key Name"That is one way of doing it. The struts libraries use this method extensively. It is more suited to JSP1.2.
    Sometimes it is easier/neater just to put the value into a scoped attribute, and pass in the name of that attribute. That way you don't need to worrry about the type of the attribute at all in your JSP.
    Hope this helps some,
    evnafets

  • Pass structure or array into a custom tag?

    Is it possible to pass a CF structure or array to a custom
    tag (C++/MFC) as an argument? Is it possible to create a CF array
    or structure *from* a custom tag?

    Passing a structure out is as easy as using a period in the
    variable name in your SetVariable() call.
    For example,
    pRequest->SetVariable ("SPP_zResults.bHadErroredPts", "0");
    pRequest->SetVariable ("SPP_zResults.dMax",
    "3.14159265");
    Passing a struct in may be just as easy, I haven't ever
    needed to try it.
    Let us know if it works.

  • Custom tag lib with output parameter

    Hi,
    I need a tag libray that gives me a specific element of a Vector.
    Here there is the line I have in my jsp.
    <ct:partizione tronco="${contenitoreCentralineTronco}" indice="index" partizione="tmpPartizione"/>
    ...-contenitoreCentralineTronco is an Object that contains a Vector of other specif objects.
    -indice is the vector index of the specif instance I need.
    -partizione should be the output instance.
    This is part of my tld file:
        <tag>
             <name>partizione</name>
            <tagclass>ss.aspi.classi.centraline.grafica.tagSupport.Partizione</tagclass>
            <bodycontent>empty</bodycontent>
            <info>Estrae una partizione da un vettore di partizioni dato l'indice</info>
            <attribute>
                <name>tronco</name>
                <required>true</required>
                <rtexprvalue>true</rtexprvalue>
            </attribute>
            <attribute>
                <name>indice</name>
                <required>true</required>
            </attribute>
            <attribute>
                <name>partizione</name>
                <required>false</required>
            </attribute>
         </tag>
    ...this is part of the class called by the tag:
         private ContenitoreTroncoBean tronco;
         private Integer indice;
         private ContenitorePartizioneBean partizione;
         public int doStartTag() throws JspException {
              try {
                   Vector<ContenitorePartizioneBean> partizioni = tronco.getPartizioniBean();
                   partizione = partizioni.get(indice);
              }catch (Exception e) {
                   log.error("Errore nell'estrazione della Partizione "+indice);
                   e.printStackTrace();
              return TagSupport.SKIP_BODY;
         //All getter and setter functionsWhen I run the application I get this exception:
    jsp.error.beans.property.conversion
    looking deeper in the class code jenerated from the jsp, I noted that the problem refers to the third attribute of the tag <ct:partizione>.
    It seems It trys to set the attribute "partizione" with the value "tmpPartizione", but partizioni should be an output attribut non input. The varible tmpPartizione doesn't exist... the tag should create it.
    I realized I didn't get how I should create a tag with output parameters.
    Anyone can explane me it?
    Thanks.

    One suggestion: Take a closer look at the EL (expression language)
    It has an excellent syntax for accessing collections/maps
    ${contenitoreCentralineTronco[index]} would exactly what you want, without having to write a custom tag for it.
    If you REALLY want to do this as a custom tag, then you need to treat the input attribute as a String (the name of the variable you are going to create?) Right now your tag declares the attribute partizione as being of type ContenitorePartizioneBean which is probably the cause of the problem - you are passing it a String.
    Cheers,
    evnafets

  • Setter method not getitng called in the custom tag

    Hi,
    I have written a custom tag and I have declared an attribute in the tld file and have specified the setter method for the same in the java tag file but that setter method is not getting called...for rest of the attributes, the methods are getting called and not just for one!! any idea what could be the problem....
    Regards
    Deepak Saini

    Do you have a getter method to match that property?
    Post some example code - what does your tld define for this property, and what get/set methods have you defined for it?

  • Why it cannot find the setter method for the attribute in my custom tag?

    Hi, i have a custom tag like this:
    <robin:category tModelKey="#{data.tModelKey}" > </robin:category>And in my tld file:
    <tag>
          <name>category</name>
         <tag-class>category.component.HtmlCategoryTag</tag-class>
         <attribute>
             <name>tModelKey</name>
             <required>false</required>
             <rtexprvalue>false</rtexprvalue>
             <type>java.lang.String</type>
         </attribute>
    </tag>
    ........................................and in my HtmlCategoryTag Class
    public class HtmlCategoryTag extends HtmlPanelGridTag
    private String tModelKey;
    public String getTModelKey()
    return tModelKey;
    public void setTModelKey(String modelKey)
    tModelKey = modelKey;
    So,you see,generally speaking,to use a custom tag,we only to write a tag class,declare it in the tld file,nothing more.
    What fints me is that if i change "tModelKey" to "test" and change the according part in the tag class , tld file and jsp file, the "setter not found" problem no longer exists,everything goes right!!!.
    So why this happens? please help:)
    Best Regards:)
    Robin

    Then you also need to create a UI element that extends HtmlPanelGrid
    that has a tModelKey member and getters/setters. That object will hold
    the information so that you can use it in your bean.Whoops... ignore that! Sorry. Attributes are simply stored in the component map component.getAttributes().
    Add to your Tag class:
    public void setProperties(UIComponent component) {
        super.setProperties(component);
        Tags.setString(component, "tModelKey", tModelKey);
    public void release() {
        // see above
    }Where Tags.java is:public class Tags {
        public static void setString(UIComponent component, String attributeName, String attributeValue) {
            if (attributeValue != null) {
                if (UIComponentTag.isValueReference(attributeValue)) {
                    setValueBinding(component, attributeName, attributeValue);
                } else {
                    component.getAttributes().put(attributeName, attributeValue);
        public static void setValueBinding(UIComponent component, String attributeName, String attributeValue) {
            FacesContext context = FacesContext.getCurrentInstance();
            Application app = context.getApplication();
            ValueBinding vb = app.createValueBinding(attributeValue);
            component.setValueBinding(attributeName, vb);
    }

  • Custom tag cloud webpart based on keywords from a Term Set in the Term Store .

    Hi Guys
    Does anyone have developed a custom Tag Cloud webpart in SharePoint 2010? I'm
    looking for a custom Tag cloud based on keywords from a Term Set in the Term Store.
    Unfortunately
    out of the box Tag Cloud Web Part only reference the Social Tags from the User.
    in my case editors have created pages and tagged a page using terms from the Term store.
    What I would like to see is a web part which could display “Top Keywords”, and the output is something like this:
    http://electronicdiscovery.info/what-additional-features-would-you-like-to-see-in-sharepoint-word-cloud-survey-electronic-discovery/
    Thanks In advance
    Tanaji Chavan

    Hi  Ramakrishnaraja ,
    Thanks for sharing the links , i tried using web part in second link but that’s not working , have also gone through the code of that web part seems like it is referring to some list like
    "Categories" and "Posts"
    however I'm looking for a custom Tag cloud based on keywords from a Term Set in the Term Store .
    Thanks 

  • Is it possible to set a custom tag attribute from a TagExtraInfo?

    Hi Everyone,
    I'm developing my own tags and I need to set some optional attributes of my custom tag if the user doesn't do it.
    Is is possible to do that on the IsValid method of a TagExtraInfo class?
    The code is running without exceptions but is not setting the attribute.
    My Tag (The optionValue attribute is optional):
    <qe:select name="cars" optionBody="carName" optionValue="carID" />My TagExtraInfo class:
    public class SelectTei extends TagExtraInfo {
        private static final Logger logger = Logger.getLogger(SelectTei.class);
        @Override
        public boolean isValid(TagData tagData) {
            String optionBody = tagData.getAttributeString("optionBody");
            String optionValue = tagData.getAttributeString("optionValue");
            if (optionBody != null && optionValue==null){
                    tagData.setAttribute("optionValue",optionBody);
            //Other validations.... 
            return true;
    }

    CFGadget wrote:
    It's not obvious as to how to set a background color which is by default, black.
    Assuming you mean set the background color of a new image, just set the desired canvas color using hex or a named color ie "red", "white", ...
                    ImageNew([source, width, height, imageType, canvasColor])

  • No setter method found - custom tag

              Hi Guys
              When I attempt to access a .jsp that is making use of a custom tag library that
              I've written I'm seeing the following message:
              "weblogic.servlet.jsp.JspException: (line 1): Error in using tag library uri='/WEB-INF/LSTreeControl.tld'
              prefix='tree':
              There is no setter method for property 'colIndex', for Tag class 'com.levelseas.core.web.tag.treecontrol.LSSubmitParamTag"
              The method has a signature of:
              "public void setColIndex(String index) throws JspTagException"
              and the Class has a number of sets defined on it and this is the only one that
              is being complained about. If I remove this attribute then no complaint!
              I'm new to bea but have been around jsp for a while so I'm wondering if this is
              a feature of wls 6.1 and would love to know a way around it.
              Any help appreciated
              J
              

              Hi Guys
              Problem is almost certainly because I've gone and defined the get as returning
              an int, (hence no property!)
              Apols
              J
              

  • Custom Views: Set style of text in custom HTML tags

    hi all, I'm using an extended JEditorPane to render HTML containing custom tags e.g. <mytag>Text</mytag>
    My ViewFactory dynamically loads a class based on the name of the tag to return the View for that tag. (The idea being you can add any tag, by just providing a View class to render it). It's working to the extent that I can use the View.paint() method to paint a square of text before and after the content element.
    What I need to do is set the style (attributes) of the text contained in the custom tags. Is this possible?
    A call to doc.setCharacterAttributes(startoffset, endoffset, attrs, true); from the View results in a "Attempt to mutate in notification", possibly because the HTMLDocument is locked at this time.
    Any help/advice would be greatly appreciated.
    Thanks.

    I'll rephrase. Is it possible to change the HTMLDocument from a View object. Forgive my lack of understanding.

  • How to get and set custom tag attributes

    How do i get and set custom tag attributes from a jsp page?

    Not sure if this is what your looking for, but....
    example...
    < taglibprefix:testtag attribute1="x" attribute2="y">
    ...of course, the attributes have to be defined in your taglib (.tld) file

  • Setting up custom tags using Cfmodule?

    I have just set a site up on Godaddy, on a shared CF server, so I don't have access to the administrator to set up a custom tag
    I believe it's possibly to set up a tag by uploading into my web root and then referring to it using CFMODULE
    Can anybody offer any help on this as I can't get it working.
    the issue is I want to set up DLL custom tags, such as CFX_ZIP (CFX_ZIP), and CFX_GIFSIZE (gifsize.dll)
    Thanks
    Mark

    I guess I could try some createobject code to see if it works on godaddy
    Would you be able to post some example code?
    Sure. Here is a simple test. If by some miracle that actually runs without error, you can find a .NET example in the documentation
    <cfset str = createObject("java", "java.lang.String").init("Test this")>
    <cfoutput>#str#</cfoutput>
    Also, find out what version of CF you are using. If it is CF8+ you are in business.
    <cfoutput>
    version #server.coldFUsion.ProductVersion#
    </cfoutput>

  • Initialization of parameter values in JSP Custom Tag Handlers

    Hi - I have a tag handler for a custom tag that has no body, but accepts
              some parameters.
              If the parameters are optional and are passed with the tag in the source jsp
              page, then all is fine.
              However, for subsequent uses of the same tag in the same page if the
              optional parameters are omitted, the previous values remain in the instance
              of the tag handler class, as the attributes for the tag handler are declared
              as instance variables (with corresponding getters and setters) as per the
              tag handler specs.
              eg:
              <abc:sometag attrib1="a" attrib2="b"/>
              if attrib1 and attrib2 are optional, then a subsequent use of this tag, eg:
              <abc:sometag/>
              attrib1 and attrib2 still have their previously assigned values of "a" and
              "b".
              Is there a method I can call to get the actual values of the attributes that
              were passed on a particular call to the tag handler, or is there a way to
              initialize the attributes before the tag handler processing method, eg
              doBeforeBody(), doAfterBody(), is called?
              Thanks,
              Kevin Hooke
              

    Yeah, just call the JSPWriter's print method instead of using the StringBuffer, or write your own subclass of StringBuffer (or StringBuilder if Java 5+) which will do this for you automatically when the size is at a certain point, and clear it out)

  • Custom Tag: Cannot find setter method for attribute

    This has been working fine in appserver6.5.
    In the jsp:
    =======
    <display:table configFileDir="theDirectory"...>
    =======
    The tld entry:
    <tag>
    <name>table</name>
    <tagclass>org.apache.taglibs.display.TableTag</tagclass>
    <teiclass>org.apache.taglibs.display.TableTagExtraInfo</teiclass>
    <bodycontent>JSP</bodycontent>
    <attribute>
    <name>configFileDir</name>
    <required>false</required>
    <rtexprvalue>false</rtexprvalue>
    </attribute>
    =============
    In TableTag.java:
    =============
    private String configFileDir = null;
    public void setConfigFileDir( String v )
         v = v.trim();
    this.configFileDir = v;
    ============
    Help, I'm going nuts.

    Then you also need to create a UI element that extends HtmlPanelGrid
    that has a tModelKey member and getters/setters. That object will hold
    the information so that you can use it in your bean.Whoops... ignore that! Sorry. Attributes are simply stored in the component map component.getAttributes().
    Add to your Tag class:
    public void setProperties(UIComponent component) {
        super.setProperties(component);
        Tags.setString(component, "tModelKey", tModelKey);
    public void release() {
        // see above
    }Where Tags.java is:public class Tags {
        public static void setString(UIComponent component, String attributeName, String attributeValue) {
            if (attributeValue != null) {
                if (UIComponentTag.isValueReference(attributeValue)) {
                    setValueBinding(component, attributeName, attributeValue);
                } else {
                    component.getAttributes().put(attributeName, attributeValue);
        public static void setValueBinding(UIComponent component, String attributeName, String attributeValue) {
            FacesContext context = FacesContext.getCurrentInstance();
            Application app = context.getApplication();
            ValueBinding vb = app.createValueBinding(attributeValue);
            component.setValueBinding(attributeName, vb);
    }

Maybe you are looking for

  • My wi-fi not gating on

    my wi-fi not geting on

  • Is it possible to insert an area inside my immage so that....

    Is it possible to make an area inside my immage so that when I export my document into dreamweaver, I can put what ever I want in that area.........like a table or another picture, code, etc?

  • Need help with pie chart code

    I am new to Java and am having problems and I am in need of some help. I have written the code for my Mortgage Calculator but do not know how to get my chart to work. I found an example of the chart code in my text book but I am not sure if I wrote i

  • S/MIME Signed mails links behavior in OWA

    Hello all, i'm currently facing a problem with the OWA. Server: Microsoft Exchange 2010 (Version 14.3, Build 123.4) Client: Window 7 Pro | Internet Explorer 11.0.9600.17280 Received (signed) mails containing a link will reformat the URL (http://www.g

  • 3.1 os update

    When I update the 3gs to 3.1 OS. I can't started up the iphone to the desktop. there is only a apple logo and a wait logo in the screen. how can I do it?