JSP tags as object constructors?

Hi,
I want to instantiate an object in a tag handler and then use the object in my JSP code. For example:
<objConstructor varName="myObj" field1="foo" field2="bar" />
<%
out.println(myObj.getField1() + " " + myObj.getField2());
%>
Is there an elegant way to do this in JSP, or is there a more appropriate way? I want to allow non-programmers to edit the stuff.
Thanks,
Greg

Sure, you just need to add a TEI class for your tag. So if your tag class is named ObjConstructor.java, you'd need a class called ObjConstructorTEI.java that looks something like this:
import javax.servlet.jsp.tagext.*;
public class ObjConstructorTEI extends TagExtraInfo
   public VariableInfo[] getVariableInfo(TagData data)
      VariableInfo info1 = new VariableInfo(data.getAttributeString("id"),"class.name.for.the.object", true, VariableInfo.AT_BEGIN);
      VariableInfo[] info = { info1 } ;
      return info;
}Note: I changed your varName to id in this example, just to follow the convention used by other tags like jsp:useBean.
I copied it from a tag I wrote a while back, so I don't remember the specifics of the VariableInfo API, but since you're using it the same way as I did, it should work.

Similar Messages

  • F:invokeUrl jsp tag and child objects

    Hey all,
    Does anyone know if its possible to use the f:invokeUrl tag on a method in a child object? eg:
    <f:invokeUrl var="myObject.myChildObject" methodName="myMethod" />
    I've also tried:
    <f:invokeUrl var="${myObject.myChildObject}" methodName="myMethod" />
    with no luck. I've gotten the above to work using the f:invoke jsp tag.
    What I'm trying to do is put my ajax type functions in the objects that make the most sense. If I can't get this to work, I'll need to make presentation objects with all my ajax functions, create an instance and put it into scope, which I rather not do.
    Thanks,
    Graham

    Graham,
    I can't say if it will work or not, because its a better practice to leave all logic outside of the jsp (and I really don't know!). Do the logic in an activity, then only use the jsp to display the values. Keeping the logic outside is a much easier way to keep track of the data, and also re-use if necessary.
    Customarily, a 'view' object is created. FileStatusView for example, would be a BPM Object that contains all the values to be displayed in a JSP or presentation.
    Hope thats helpful!
    -Kevin

  • Object passing to weblogic JSP tags

    Hello everyone
              I was wondering if I can pass a java object to a weblogic jsp tag
              for example if I select a content object with id "newsItem"
              <cm:selectbyid contenthome="com.beasys.commerce.axiom.document.Document"
              contentid="<%= contentId %>"
              id="newsItem" />
              can I pass newsItem as a variable to the next tag
              i.e. instead of writing it
              <cm:printdoc id="newsItem" />
              I write it
              <cm:printdoc Id="<%= newsItem %>" />
              This results in an compiler error if the object is passed to Id that is
              waiting for a content instance, while if it is passed to contentid (as in
              the first
              script) then it works fine, as this is waiting for a string.
              Is it possible to pass an object to the "id" in the jsp script, and if not,
              is there a work around it that enables the content selection logic to be
              seperated from the display.
              Thank you
              May
              

    Oh...i put quotes around the values and that fixed it.
              <%@ page language="java" session="false" %>
              Happy Holidays,
              Brian
              "Brian Williams" <[email protected]> wrote in message
              news:[email protected]..
              > Hello,
              >
              > I have a JSP that does something strange: When I look
              > at it under Explorer it looks fine but under Netscape
              > it has this at the top of the page:
              >
              > <%@ page language=java session=false %>
              >
              > Actually, with Explorer you can see it in the view
              > source. What's up with Weblogic? It seems that
              > it failed to parse this JSP tag.
              >
              > Thanks,
              > Brian
              >
              >
              >
              

  • Problems in developing custom JSP tags

    I have problems in debugging custom JSP tags. Sometimes the doStartTag is not called on tags but the doEndTag is called. I don't know why.
    Thanks.

    Fahr--
    A word of caution -- NetUI did not ship a JSP tag SDK in 8.x, and
    we're making no compatibility guarantees for custom JSP tags written on
    the 8.x release and future releases.
    You can accomplish the same sort of functionality with a combination
    of the <netui-data:getData> tag and JSTL 1.0. This solution would
    probably provide similar functionality and be more future-proof relative
    to JSTL and the NetUI tags currently being developed in Beehive.
    Hope that helps.
    Eddie
    Fahr Vegnugen wrote:
    We are in the midst of creating our own JSP tags to work with datasources.
    In an example where you would need to compare two different datasources how would you do this?
    ie.
    <prefix:isGreater dataSource="{pageflow.column1}" dataSourceToCompare="{pageFlow.column2}" />
    How would I evaluate what column2 is since the tag will only resolve one data source
    this.evaluateDataSource();
    Any pointers you can provide would be appreciated, or if there is a library of jsp tags that evaluate objects using datasources already created, that would even be better.

  • JSP Tags and pooling.

    We are researching JSP Tags as a method of seperating our creative and coding efforts. Our research is showing that JSP tags is a resource hog and noticed that none of the JSP Tags are being pooled. Docs that we have looked at suggest that pooling does occur, but we do not see it happening. Is anyone using this technology and if so how is the performance?
              

    Cameron,
              In general, what kind of "interesting bugs" and "design flaws" do you mean?
              I would expect that using any kind of cache can allow for bugs due to developers
              confusion... but are there inherent "bugs" (or design flaws) that are built into
              WL's Cache tag?
              Jack Lin
              Cameron Purdy wrote:
              > Install the latest SP. They are (relatively speaking) resource intensive.
              > However, properly implemented/used, this relative cost is close to 0.
              > (Instantiating a Java class and calling a few empty methods uses a couple
              > hundred clock cycles on a good JVM.) BTW Pooling is considerably more
              > expensive for simple objects than instantiating new ones. Also, due to
              > design flaws in the custom tag API, pooling JSP tags could lead to some
              > interesting bugs related to the lack of re-initialization.
              >
              > --
              >
              > Cameron Purdy
              > [email protected]
              > http://www.tangosol.com
              > WebLogic Consulting Available
              >
              > "Anthony Raiti" <[email protected]> wrote in message
              > news:39d4a35f$[email protected]..
              > We are researching JSP Tags as a method of seperating our creative and
              > coding efforts. Our research is showing that JSP tags is a resource hog and
              > noticed that none of the JSP Tags are being pooled. Docs that we have looked
              > at suggest that pooling does occur, but we do not see it happening. Is
              > anyone using this technology and if so how is the performance?
              

  • How to render custom JSP tags

    We have our own custom JSP tag libraries (some of them extend the Struts tags, but many do not) and want those to render correctly in the design view.
    Is that supported by NitroX Struts, or will it only work with built-in Struts tags?
    If it is supported, how does one get NitroX to run the custom tags?

    It is possible to customize many aspects of the rendering of a custom tag. This is done using a combination of an M7 specific metadata, and standard css rules.
    For example, you can change the label, icon and border of a custom tag by doing the following steps:
    1) Create a folder named "nitrox" where your tld file is located. For example if you have "/WEB-INF/app.tld" then create a
    folder "/WEB-INF/nitrox/".
    2) In the nitrox folder created above, create a file named "app.tlei" (for Tag Library Extra Information). The file name used here should match the name of the tld file. In this case "app".
    3) Paste the following content in the app.tlei file:
    <taglib-extrainfo>
    <css-uri>app.css</css-uri> <!-- an optional css file relative to this tlei file -->
    <tag name="myTag">
    <display-name>My Tag</display-name> <!-- The name displayed in the Tag Libraries view -->
    <rendering-label>{tag-name} ({name})</rendering-label> <!-- This will display the value of the "name" attribute in addition to the tag name in the tag view in the JSP design editor. -->
    <small-icon>images/myTag.gif</small-icon> <!-- The image uri relative to this tlei file. This is used in the Tag Libraries view and in the JSP design editor.-->
    </tag>
    </taglib-extrainfo>
    All customization tags are optional.
    4) Create the css file referenced from the tlei file above (in this example app.css in the same directory containing the tlei file).
    5) Paste the following content in the app.css file:
    myTag {border: 1 solid red; display: "inline"}
    This will render the tag as inline (i.e as one graphical object) even if the tag has nested content.
    In addition, you can use any standard css style property.
    You can customize other tags in the same fashion.
    If a custom tag inherits from a Struts tag, then the tag can inherit the full built-in tag customization as shown in the following example:
    Suppose you have a tag named "myText" that extends the Struts html:text form field tag. To inherit the NitroX html:text customization you follow the steps:
    1) insert the following in the tlei file described above:
    <tag name="myText">
    <inherit taglib-uid="http://jakarta.apache.org/struts/tags-html" tag-name="text" />
    </tag>
    2) Insert the following css rule in the css file referenced from the tlei file:
    myText {m7-inherit: "input-text"; display: inline}
    This will inherit the built-in css style for form text fields.
    Likewise, you can inherit the other Struts tags css styles by using the following rules:
    myPassword {m7-inherit: "input-password"; display: inline}
    myCancel {m7-inherit: "input-submit"; display: inline}
    myCheckbox {m7-inherit: "input-checkbox"; display: inline}
    myRadio {m7-inherit: "input-radio"; display: inline}
    mySelect {m7-inherit: "select"; display: inline}
    myTextarea {m7-inherit: "textarea"; display: inline}
    3) The inherited tag library file (in this example the struts-html.tld), must also be present under the WEB-INF directory.
    M7 Support

  • Javazoom UploadBean - using UploadBean properties within jsp tags

    I am working on a jsp web application and integrating the UploadBean from javazoom.net into it. I am using a MySQL database to capture all informaion about mp3 files being uploaded - filename, date, filetype, etc.
    Can someone guide me as to whether it is possible to reference the properties of the UploadFile class within a jsp tag?
    What I am trying to do is this - I want to capture the filename of the file I upload and store it in a MySQL database. Within the SimpleUpload.jsp page, the filename is accessed within scriplet code as follows:
    file.getFileName();
    (Where file is a variable representing an instance of the UploadFile class, and getFileName() is a method in this class that returns the file name you are uploading).
    What I would like to do is use this method so that this same filename can be used in a a sql:update tag to populate a database with the filename and with the other details of the file which is uploaded.
    Can anyone advise as to if this is possible and how? I tried to create a sql:update statement to populate the database with the result of file.getFileName();
    The problem is that the sql:update jsp tag can't see the file.getFileName() object and method - it doesn't know about this object and method.
    Thanks!

    I'd still appreciate an answer to this if anyone can help.
    Thanks.

  • JSP tags into vm?

    Is there any ways to place JSP tags into Velocity templates? I've seen Velocity can be embed into JSP but i'm not sure if vice versa?

    Cameron,
              In general, what kind of "interesting bugs" and "design flaws" do you mean?
              I would expect that using any kind of cache can allow for bugs due to developers
              confusion... but are there inherent "bugs" (or design flaws) that are built into
              WL's Cache tag?
              Jack Lin
              Cameron Purdy wrote:
              > Install the latest SP. They are (relatively speaking) resource intensive.
              > However, properly implemented/used, this relative cost is close to 0.
              > (Instantiating a Java class and calling a few empty methods uses a couple
              > hundred clock cycles on a good JVM.) BTW Pooling is considerably more
              > expensive for simple objects than instantiating new ones. Also, due to
              > design flaws in the custom tag API, pooling JSP tags could lead to some
              > interesting bugs related to the lack of re-initialization.
              >
              > --
              >
              > Cameron Purdy
              > [email protected]
              > http://www.tangosol.com
              > WebLogic Consulting Available
              >
              > "Anthony Raiti" <[email protected]> wrote in message
              > news:39d4a35f$[email protected]..
              > We are researching JSP Tags as a method of seperating our creative and
              > coding efforts. Our research is showing that JSP tags is a resource hog and
              > noticed that none of the JSP Tags are being pooled. Docs that we have looked
              > at suggest that pooling does occur, but we do not see it happening. Is
              > anyone using this technology and if so how is the performance?
              

  • Member variable for jsp tag

    Hi,
    is it safe to have member variables in jsp tag? every time service method will create new instance of tag?Thanks

    is it safe to have member variables in jsp tag? The answer is yes, but.
    every time service method will create new instance of tag?no, it will not necessarily create a new instance every time.
    For most tags I believe the spec allows for a 'pool' of tag handlers to be retained.
    Certainly I have seen this happen in tomcat.
    An exception is the JSP2.0 SimpleTagHandler which guaruntees that it will be used once and then thrown away.
    With other tags, you have ownership of the tag and its member variables, between doStartTag and doEndTag. Nothing else can interfere with the member variables.
    However if you include the tag twice in your page, one after another, it is quite possible, that you will be given the same tag object, and thus the member variables might have variables set from the previous use of the tag.
    It is fairly easy to work around though
    in the doStart: init any member variables that are not defined by attributes to be their default values
    in the doEnd method, clean up your member variables. Clear any attribute values that might be optional. Set things to null. That way you are guarunteed that if the tag is reused, it won't pick up any data from your run through here.
    But don't take my word for it :-) Try it out.
    Hope this helps,
    evnafets

  • Assiginment to varaibles from jsp tags

    is it possible and how is it possible to assign something from jsp tag to an variable declared in scriptlet code - ie. - as below.
    also is there a good resource for jsp info - a comprehensive lookup on jsp syntax egs on the web that any one is aware of. - thanks.
    i 'm doing - can i use this variable as in below scrpitlet code :
    <%! List myAbridgments = new ArrayList(); %>
    then - Also at this stage it get a ClassCastException - why would i get that here i dont use this variable - results anywhere else - except in setting the session attribute in the original servlet that calls this jsp page
    <jsp:useBean id="results" class="com.bt.ros.Results" scope="session">
    <jsp:setProperty name="results" property="*"/>
    </jsp:useBean>
    the in some scrpitlet code doing:
    <%  myAbridgments = results.getAbridgments();
    for (int i = 0; i < myAbridgments.size(); i++) {
                    abridgment = (Abridgment) myAbridgments.get(i);
                        //out.println(abridgment.geta_volume_id());
    %>
    <p><input type="checkbox" name="list" value="ON"><span style="font-size:12pt"><jsp:getProperty name="abridgment" property="a_sub_year_volume"/></span><span style="font-size:12pt">,
         <a href="abridgment_link.htm"><jsp:getProperty name="abridgment" property="a_volume_id"/></a>, </span>

    yeah, but this doesn't really help me. I am trying (really hard!) to ensure my JSP's don't really contain any "code" as such, just JSP tags.
    The end result I want is to include one JSP in another. Now, I "could" just use a <jsp:include.., the problem is that the path to the file I want to include is tied up in an object which I have previously placed in the ServletRequest object. Again, I "could" extract this in the "parent" jsp, and pass it dynamically to the jsp:include, but I don't want any actual Java "code" in the JSP. (There IS a good reason for this, so I can't really comprimise).
    The fact that the IS a pageContext.include() method tells me that I can use it. I must be doing something wrong though.
    Thanks anyway.

  • Experiences developing iViews with JSP tags

    Hi,
    has anyone experiences in the development of iViews using JSPs and the JSP tags ? Especially the useBean tag... I think it should be no problem to store beans in the session. If I want to share the bean among iView is it enought to synchronized each method of the bean ?
    Thanks

    Hi O.,
    please, before going on guessing around what synchronization means, read some tutorial, that's what the link was thaught for. It is no problem at all not to know this topic, it's definitely some more advanced topic within the language, but it doesn't help if you don't know it to guess how it <i>could</i> work/behave.
    > if I declare all getters and setters of the bean with
    > synchronize I avoid the issue of inconsistent data
    Once again: For pure getters and setters this sentence is definitely wrong. As long as complex class members are not manipulated / accessed concurrently, there is no need for synchronization (within the class).
    > thread 1 sets a value a concurrent thread 2
    > could read the data and would get a not actual value...
    > if I synchronize the get and set, thread 2 will be
    > able to invoke the getter after thread 1 finished the
    > setter.
    Once again: You don't have it in your hands which thread comes first. And synchronizing a method only means that a thread calling this method will run through it as an atomic operation, no other thread will disturb. But getters and setters normally are atomic, you cannot reach more... If a thread calls two (synchronized) methods of the same object, between these two calls, "the race is open again...".
    A good example is http://www-106.ibm.com/developerworks/java/library/j-threads1.html
    See the example at the end of this link, that's somehow just what we are talking about. The solution would be to synchronize the <i>setFoo(getFoo() + 1)</i> itself (for example with the bean object as locker). Whereas the synchronization of the methods is superfluous (and time consuming).
    Hope it helps
    Detlev

  • Hot deploying jsp tags

    Hi does anybody out there no how to hot -deploy non ejb classes .Like jsp
              tags for example? It is extremely to code them without a hot deployment
              ability.
              Thanks in advance
              Jeff Anderson
              

    Cameron,
              In general, what kind of "interesting bugs" and "design flaws" do you mean?
              I would expect that using any kind of cache can allow for bugs due to developers
              confusion... but are there inherent "bugs" (or design flaws) that are built into
              WL's Cache tag?
              Jack Lin
              Cameron Purdy wrote:
              > Install the latest SP. They are (relatively speaking) resource intensive.
              > However, properly implemented/used, this relative cost is close to 0.
              > (Instantiating a Java class and calling a few empty methods uses a couple
              > hundred clock cycles on a good JVM.) BTW Pooling is considerably more
              > expensive for simple objects than instantiating new ones. Also, due to
              > design flaws in the custom tag API, pooling JSP tags could lead to some
              > interesting bugs related to the lack of re-initialization.
              >
              > --
              >
              > Cameron Purdy
              > [email protected]
              > http://www.tangosol.com
              > WebLogic Consulting Available
              >
              > "Anthony Raiti" <[email protected]> wrote in message
              > news:39d4a35f$[email protected]..
              > We are researching JSP Tags as a method of seperating our creative and
              > coding efforts. Our research is showing that JSP tags is a resource hog and
              > noticed that none of the JSP Tags are being pooled. Docs that we have looked
              > at suggest that pooling does occur, but we do not see it happening. Is
              > anyone using this technology and if so how is the performance?
              

  • Include jsp tags

    I am having a problem relacing the include file of let's call it a
    header.jsp in a menu page named menu.jsp.
    So in my header.jsp file let's say I do something simple like
    <table>
    <tr><td><jato:href name="first">First Option
    </jato:href></td></tr></table>
    and so on....
    And in my main.jsp I have a simple include at the top of my page
    like so
    <html
    <body>
    <%include file=header.jsp%>
    etc.
    Now when JRun 3.0 makes the include replacement, it seems to have a
    problem where it tells me
    Servlet error 500
    com.iplanet.jato.view href : taglib navigation not found
    BUT when I take out the jato tags in the include file...I can get
    JRun to make the replacement perfectly....
    Does anyone else have this problem and if so how did you get around
    it?

    Sorry to bother you again, but I couldn't find anything that looked strange
    is this file. Can you send us the original file at our personal email
    addresses? I'd like to see exactly where the compilation error occurs and
    it's not possible with the file inlined here.
    todd.fast@e...
    michael.frisino@s...
    Thanks,
    Todd
    ----- Original Message -----
    From: <suket@u...>
    Sent: Wednesday, January 17, 2001 2:02
    Subject: [iPlanet-JATO] Re: include jsp tags
    Hi Mike,
    Both of the jsp files (pgHelp.jsp and pgFooter.jsp)
    are in the same folder. I removed the IPP/ipp portion in the
    include directive but still giving the same err.
    iam using Allair Jrun 3.0.
    Here is the intermediary generated Jsp file
    / Generated by JRun, do not edit
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;
    import allaire.jrun.jsp.JRunJSPStaticHelpers;
    public class jrun__IPP__ipp__pgHelp2ejsp13 extends
    allaire.jrun.jsp.HttpJSPServlet implements
    allaire.jrun.jsp.JRunJspPage
    private ServletConfig config;
    private ServletContext application;
    private Object page = this;
    private JspFactory __jspFactory = JspFactory.getDefaultFactory();
    public void _jspService(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, java.io.IOException
    if(config == null) {
    config = getServletConfig();
    application = config.getServletContext();
    response.setContentType("text/html; charset=ISO-8859-1");
    PageContext pageContext = __jspFactory.getPageContext(this,
    request, response, null, true, 8192, true);
    JspWriter out = pageContext.getOut();
    HttpSession session = pageContext.getSession();
    try {
    out.print("\r\n\r\n");
    IPP.ipp.pgHelpViewBean viewBean = (IPP.ipp.pgHelpViewBean)
    pageContext.getAttribute("viewBean", PageContext.REQUEST_SCOPE);
    if(viewBean == null) {
    if(JRunJSPStaticHelpers.getAndSetBean(pageContext,
    "viewBean", IPP.ipp.pgHelpViewBean.class
    , PageContext.REQUEST_SCOPE, 3)) {
    viewBean = (IPP.ipp.pgHelpViewBean)pageContext.getAttribute
    ("viewBean", PageContext.REQUEST_SCOPE);
    } else {
    viewBean = (IPP.ipp.pgHelpViewBean)pageContext.getAttribute
    ("viewBean", PageContext.REQUEST_SCOPE);
    pageContext.setAttribute("viewBean",viewBean);
    out.print("\r\n");
    com.iplanet.jato.taglib.UseViewBeanTag useViewBean__4_1 =
    (com.iplanet.jato.taglib.UseViewBeanTag)
    JRunJSPStaticHelpers.createTagHandler(pageContext,
    "com.iplanet.jato.taglib.UseViewBeanTag");
    useViewBean__4_1.setPageContext(pageContext);
    useViewBean__4_1.setParent(null);
    useViewBean__4_1.setClassName("IPP.ipp.pgHelpViewBean");
    int useViewBean__4_1_startVal = useViewBean__4_1.doStartTag();
    JRunJSPStaticHelpers.checkStartVal
    ("com.iplanet.jato.taglib.UseViewBeanTag",useViewBean__4_1_startVal,Bo
    dyTag.EVAL_BODY_INCLUDE,4);
    if(useViewBean__4_1_startVal == BodyTag.EVAL_BODY_INCLUDE) {
    com.iplanet.jato.view.ContainerView currentView =
    (com.iplanet.jato.view.ContainerView)pageContext.getAttribute
    ("currentView");
    com.iplanet.jato.view.TiledView currentTiledView =
    (com.iplanet.jato.view.TiledView)pageContext.getAttribute
    ("currentTiledView");
    out.print("\r\n<HTML>\r\n<HEAD><!--jato:text name=\"stTemp\"
    fireDisplayEvents=\"true\" escape=\"true\" /--><!-- Added Temporarily
    by ravindran on 8th jan 2001 -->\r\n");
    com.iplanet.jato.taglib.TextFieldTag textField__7_1 =
    (com.iplanet.jato.taglib.TextFieldTag)
    JRunJSPStaticHelpers.createTagHandler(pageContext,
    "com.iplanet.jato.taglib.TextFieldTag");
    textField__7_1.setPageContext(pageContext);
    textField__7_1.setParent(useViewBean__4_1);
    textField__7_1.setSize("20");
    textField__7_1.setMaxLength("20");
    textField__7_1.setFireDisplayEvents("true");
    textField__7_1.setName("tbUserID");
    textField__7_1.doStartTag();
    if(textField__7_1.doEndTag() == Tag.SKIP_PAGE) {
    if(true) return;
    out.print("\r\n<TITLE>pgHelp</TITLE>\r\n</HEAD>\r\n<body BGCOLOR=
    \"white\" bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#0000FF\" vlink=
    \"#800080\" alink=\"#FF0000\">\r\n");
    com.iplanet.jato.taglib.FormTag form__11_1 =
    (com.iplanet.jato.taglib.FormTag)JRunJSPStaticHelpers.createTagHandler
    (pageContext, "com.iplanet.jato.taglib.FormTag");
    form__11_1.setPageContext(pageContext);
    form__11_1.setParent(useViewBean__4_1);
    form__11_1.setMethod("post");
    form__11_1.setName("pgHelp");
    int form__11_1_startVal = form__11_1.doStartTag();
    JRunJSPStaticHelpers.checkStartVal
    ("com.iplanet.jato.taglib.FormTag",form__11_1_startVal,BodyTag.EVAL_BO
    DY_INCLUDE,11);
    if(form__11_1_startVal == BodyTag.EVAL_BODY_INCLUDE) {
    out.print("\r\n");
    if(form__11_1.doEndTag() == Tag.SKIP_PAGE) {
    if(true) return;
    out.print("\r\n");
    com.iplanet.jato.taglib.UseContainerViewTag view__1_1 =
    (com.iplanet.jato.taglib.UseContainerViewTag)
    JRunJSPStaticHelpers.createTagHandler(pageContext,
    "com.iplanet.jato.taglib.UseContainerViewTag");
    view__1_1.setPageContext(pageContext);
    view__1_1.setParent(null);
    view__1_1.setName("IPP.ipp.pgFooterViewBean");
    int view__1_1_startVal = view__1_1.doStartTag();
    JRunJSPStaticHelpers.checkStartVal
    ("com.iplanet.jato.taglib.UseContainerViewTag",view__1_1_startVal,Body
    Tag.EVAL_BODY_INCLUDE,1);
    if(view__1_1_startVal == BodyTag.EVAL_BODY_INCLUDE) {
    currentView = (com.iplanet.jato.view.ContainerView)
    pageContext.getAttribute("currentView");
    currentTiledView = (com.iplanet.jato.view.TiledView)
    pageContext.getAttribute("currentTiledView");
    com.iplanet.jato.view.ContainerView
    IPP.ipp.pgFooterViewBean = (com.iplanet.jato.view.ContainerView)
    pageContext.getAttribute("IPP.ipp.pgFooterViewBean");
    out.print("\r\n<hr color=red size=2>\r\nfrom new_footer.jsp in
    IPP/ipp directory\r\n<font size=\"-2\" face=\"Arial\"><i>Send
    comments to <a href=\"mailto:supportdept@a...\">Any
    Company</a></i></font>\r\n<hr color=red size=2>\r\n");
    com.iplanet.jato.taglib.HiddenTag hidden__6_1 =
    (com.iplanet.jato.taglib.HiddenTag)
    JRunJSPStaticHelpers.createTagHandler(pageContext,
    "com.iplanet.jato.taglib.HiddenTag");
    hidden__6_1.setPageContext(pageContext);
    hidden__6_1.setParent(view__1_1);
    hidden__6_1.setFireDisplayEvents("true");
    hidden__6_1.setName("hdFooter");
    hidden__6_1.doStartTag();
    if(hidden__6_1.doEndTag() == Tag.SKIP_PAGE) {
    if(true) return;
    out.print("\r\n");
    if(view__1_1.doEndTag() == Tag.SKIP_PAGE) {
    if(true) return;
    out.print("\r\n");
    out.print("\r\n</BODY> \r\n</HTML>\r\n");
    if(useViewBean__4_1.doEndTag() == Tag.SKIP_PAGE) {
    if(true) return;
    } catch(Throwable t) {
    if(t instanceof ServletException)
    throw (ServletException) t;
    if(t instanceof java.io.IOException)
    throw (java.io.IOException) t;
    if(t instanceof RuntimeException)
    throw (RuntimeException) t;
    throw JRunJSPStaticHelpers.handleException(t,
    pageContext);
    } finally {
    __jspFactory.releasePageContext(pageContext);
    public String getServletInfo()
    return "pgHelp";
    private static final String[] __dependencies__ =
    {"/IPP/ipp/pgHelp.jsp",null};
    private static final long[] __times__ = {979720473658L,0L};
    public String[] __getDependencies()
    return __dependencies__;
    public long[] __getLastModifiedTimes()
    return __times__;
    public int __getTranslationVersion()
    return 14;
    it is generating 2 semicolons automatically..
    near pageContext.getAttribute("IPP.ipp.pgFooterViewBean");
    regards
    ravi
    In [email protected], "Mike Frisino" <Michael.Frisino@S...>
    wrote:
    Hi Suket,
    I just retested something very similar to this in 1.0.
    Essentially, i took an existing page which included a tiledView.
    I moved the TiledView jsp block into an entirely separate jsp file.
    I then replace the TiledView jsp block in the original jsp with aninclude
    <%@ include file="TiledGetOrders.jsp"%>
    It worked like a charm.
    So I am not sure what is wrong in your case.
    Could be a jrun bug?
    I have tested in resin 1.2.1
    To do proper analysis, we would need to see
    1. The intermediary .java file that the jsp engine creates, andthen tries
    to compile.
    C:/Program
    Files/Allaire/JRun/servers/default/ipp/WEB-INF/jsp/jrun__IPP__ipp__pgHelp2ej
    sp.java
    Can you send that to us?
    Incidentally, although we do not think a problem there would causethe
    compile time error you are seeing,
    i am curious about your file value.
    <%@ include file="/IPP/ipp/pgFooter.jsp"%>I did not need to use a qualified file name, although my includetarget file
    was in the same directory as the
    page that was including it. What is the file system relationshipbetween
    your top level page "pgHelp" and the include
    target "pgFooter".
    Are they in same or diff directories?
    ----- Original Message -----
    From: <suket@u...>
    Sent: Tuesday, January 16, 2001 9:42 PM
    Subject: [iPlanet-JATO] Re: include jsp tags
    Hi,
    We tried to follow the steps described by you to have
    dynamic include in a jsp page.
    my jsp file content is
    <%@p... info="pgHelp" language="java"%>
    <%@t... uri="/WEB-INF/jato.tld" prefix="jato"%>
    <jsp:useBean id="viewBean" class="IPP.ipp.pgHelpViewBean"
    scope="request"></jsp:useBean>
    <jato:useViewBean className="IPP.ipp.pgHelpViewBean">
    <HTML>
    <HEAD>
    <jato:textField name="tbUserID" size="20" maxLength="20"
    fireDisplayEvents="true" />
    <TITLE>pgHelp</TITLE>
    </HEAD>
    <body BGCOLOR="white" bgcolor="#FFFFFF" text="#000000"
    link="#0000FF" vlink="#800080" alink="#FF0000">
    <jato:form name="pgHelp" method="post">
    </jato:form>
    <%@ include file="/IPP/ipp/pgFooter.jsp"%>
    </BODY>
    </HTML>
    </jato:useViewBean>
    This is my pgFooter.jsp
    <jato:view name="IPP.ipp.pgFooterViewBean">
    <hr color=red size=2>
    from new_footer.jsp in IPP/ipp directory
    <font size="-2" face="Arial"><i>Send comments to <a
    href="mailto:<a href="/group/SunONE-JATO/post?protectID=061075104115193209050223163176249165134048139046">supportdept@a...</a>">Any Company</a></i></font>
    <hr color=red size=2>
    <jato:hidden name="hdFooter" fireDisplayEvents="true" />
    </jato:view>
    There is no compilation error in pgFooterViewBean and in
    pgHelpViewBean.
    How ever iam getting a runtime error,
    500 Internal Server Error
    /ipp/servlet/IPP.ipp.ippServlet:
    javax.servlet.ServletException: Compilation error occured:
    allaire.jrun.scripting.DefaultCFE:
    Errors reported by compiler:C:/Program
    Files/Allaire/JRun/servers/default/ipp/WEB-
    INF/jsp/jrun__IPP__ipp__pgHelp2ejsp13.java:105:50:105:50: Syntax:
    expected instead of this token
    What could be the reason for this error message?
    We tried the same thing with another approach, instead of using
    include directive, we directly copied the code of pgFooter.jsp in
    pghelp.jsp.
    even that is giving the same error..
    <%@p... info="pgHelp" language="java"%>
    <%@t... uri="/WEB-INF/jato.tld" prefix="jato"%>
    <jsp:useBean id="viewBean" class="IPP.ipp.pgHelpViewBean"
    scope="request"></jsp:useBean>
    <jato:useViewBean className="IPP.ipp.pgHelpViewBean">
    <HTML>
    <HEAD>
    <jato:textField name="tbUserID" size="20" maxLength="20"
    fireDisplayEvents="true" />
    <TITLE>pgHelp</TITLE>
    </HEAD>
    <body BGCOLOR="white" bgcolor="#FFFFFF" text="#000000"
    link="#0000FF" vlink="#800080" alink="#FF0000">
    <jato:form name="pgHelp" method="post">
    </jato:form>
    <jato:view name="IPP.ipp.pgFooterViewBean">
    <hr color=red size=2>
    from new_footer.jsp in IPP/ipp directory
    <font size="-2" face="Arial"><i>Send comments to <a
    href="mailto:<a href="/group/SunONE-JATO/post?protectID=061075104115193209050223163176249165134048139046">supportdept@a...</a>">Any Company</a></i></font>
    <hr color=red size=2>
    <jato:hidden name="hdFooter" fireDisplayEvents="true" />
    </jato:view>
    </BODY>
    </HTML>
    </jato:useViewBean>
    Please give us a feasible solution to solve this problem.
    Thx
    Ravi
    --- In [email protected], "Todd Fast" <Todd.Fast@S...>wrote:
    Craig & Eric--
    (If you're not interested in the resolution to the problem Craigposted,
    please skip ahead to the section in which I describe the
    preferred
    technique
    for including headers and other common content in a JATO page.
    This
    discussion is very important because I introduce the concept of"view
    compostion", in which JATO pages are composed of modular andreusable view
    components. This is one of the most powerful new features of
    JATO,
    and a
    capability that simply wasn't possible in NetDynamics.)
    Posted Problem Resolution
    Craig & Eric, from what I can tell, you are both trying to
    include
    a full
    view bean in a parent page at translation time. This is notpossible, as
    you can see from the compiler errors you get. There are
    collisions
    when
    multiple top-level tags are included in the same JSP.
    When I said earlier that you needed to use a translation-timeinclude
    instead of a run-time include, I was assuming that you were
    trying
    to
    include a fragment of HTML/JSP in the parent page. By
    fragment, I
    mean HTML
    or JSP content that does not declare a view bean or form, but
    rather
    references views contained within the parent view bean. If youwant to
    include a full page (JSP + ViewBean) in another page, then you'dneed to use
    a run-time include. A run-time include temporarily pauses therendering of
    the current page, and sends the full request to the included
    page
    as if it
    were a separate client request. The resulting content from theincluded
    page is inlined into the parent page's content, and processing
    of
    the parent
    page then continues.
    Now I realize after thinking about it a bit that we may not have
    sufficiently provided for full page includes because of some
    late-
    breaking
    changes in the request context handling. After some basic
    testing,
    it
    appears that if you try to include one JATO page in another byreferencing
    the JSP, the included page will cause a class cast exception tooccur.
    There may also be problems because the request context on theincluded page
    will not have been set. In any case, full JATO page inclusionlooks like
    it's an issue we're going to have to address with some fixes
    before
    it will
    work properly. My apologies. (One workaround if this is
    necessary
    is to
    make the included view bean a child view of the parent view
    bean.
    I won't
    go into that however).
    How to Include Common Content
    Now, on to the discussion of the preferred way of including
    common
    content
    in a JATO page. Let's say you have a common header you want toinclude in
    one or more of your JATO pages. Because of the issue I notedabove, and the
    fact that the header is not really independently displayable,
    you
    don't want
    to do a run-time include (which, remember, would necessitateincluding a
    full JATO page).
    Instead, you should include the header as an HTML/JSP fragmentusing a
    translation-time include. Depending on whether your header hasdynamic
    information, you can do one of two things. If the header is
    just
    static
    content and/or set of links, you can just reference the HTMLfragment in the
    parent HTML directly, and you won't need any kind of view or
    view
    bean to
    back it, or any reference to anything in JATO.
    If you need some dynamic info in the header, like the module URLfor a link,
    you can reference the parent page's view bean for this
    information
    by simply
    including references to the parent page's implicit JSP variables(viewBean,
    currentVIew, and currentTiledView). For example:
    Parent JSP:
    <jsp:useBean id="viewBean" class="..."scope="request"></jsp:useBean>
    <jato:useViewBean className="..." fireChildDisplayEvents="true">
    <%@ include file="MyInclude.jsp" %>
    </jato:useViewBean>
    Included content (MyInclude.jsp):
    ... viewBean.getRequestContext().getModuleURL() ...
    The final HTML with the included content would then look like
    this:
    <jsp:useBean id="viewBean" class="..."scope="request"></jsp:useBean>
    <jato:useViewBean className="..." fireChildDisplayEvents="true">
    ... viewBean.getRequestContext().getModuleURL() ...
    </jato:useViewBean>
    MyInclude.jsp will be inlined in the parent JSP before it istranslated to a
    servlet. Note that it does not include the full HTML tags
    normally
    found in
    an HTML file--there are no <html>, <head>, or <body> tags
    because
    it is not
    expected to be used outside of an include page. In effect,
    this is
    the
    equivalent of a server-side include (SSI).
    Now, if you need truly dynamic info in the header, like say youwant to
    display the user's name and SSN, then you'd likely want to
    embed a
    child
    view in the parent view bean which will encapsulate & provide
    the
    necessary
    information. This is in contrast to actually making these
    fields
    direct
    children of the the parent view bean, which would be a tedious
    and
    error
    prone task on every page you wanted to include this information.Let me try
    to contrast these two approaches with a diagram of parent-child
    relationships:
    Here's the bad way:
    ParentViewBean (ViewBean)
    |
    +-- UserFirstName (StaticTextField)
    |
    +-- UserSSN (StaticTextField)
    In this situation, you'd need to provide the logic to populatethese fields
    in every view bean on which they appeared. This is tedious andessentially
    eliminates the "common"-ness of the content (this is also whatNetDynamics
    forced people to do).
    Now, the better way:
    ParentViewBean (ViewBean)
    |
    +-- MyHeaderView (MyHeaderView.java)
    |
    +-- UserFirstName (StaticTextField)
    |
    +-- UserSSN (StaticTextField)
    In the better way, you can see that the header information isencapsulated
    in an instance of "MyHeaderView", which is a subclass ofContainerViewBase
    or one of the other ContainerView subtypes. The population of
    the
    data
    fields is encapsulated in that view, and the parent view need
    not
    know
    anything about what's actually being displayed by that view.
    Thus, you can see that MyHeaderView, in conjunction with a
    snippet
    of JSP
    content in a companion file, is completely modular and can beembedded in
    any parent view bean on which you want the header to appear.
    The
    only
    requirement is then to include MyHeaderView as a child view of
    the
    parent
    view bean, and to include the correct JSP content that
    references
    that child
    view.
    The included JSP content would now look something like this:
    <jato:view name="MyHeaderView">
    <table>
    <tr><td>... <jato:staticText name="UserFirstName"/>
    ...</td></tr>
    <tr><td>... <jato:staticText name="UserSSN"/> ...</td></tr>
    </table>
    </jato:view>
    If we now included this content in the parent JSP from furtherabove, we get
    the following as the JSP content before it is translated into aservlet:
    <jsp:useBean id="viewBean" class="..."scope="request"></jsp:useBean>
    <jato:useViewBean className="..." fireChildDisplayEvents="true">
    <jato:view name="MyHeaderView">
    <table>
    <tr><td>... <jato:staticText name="UserFirstName"/>
    ...</td></tr>
    <tr><td>... <jato:staticText name="UserSSN"/> ...</td></tr>
    </table>
    </jato:view>
    </jato:useViewBean>
    Ultimately, this technique is called "view compostion" or "view
    aggregation", and is one of the major new features of JATO. Youcan now
    define reusable view components and embed them in multiple viewcontainers,
    on the same page or on different pages. Each page acts as a
    frame,
    in which
    you provide the contents from modular components. Using thistechnique, you
    can develop reusable view classes and chunks of JSP that can bearbitrarily
    combined into complex pages.
    I know this is a long and rambling discussion, but I hope I've
    made
    myself
    at least partly clear. I'm more than happy to clarify anything
    or
    elaborate
    more. Please let me know.
    Todd
    Todd Fast
    Senior Engineer
    Sun/Netscape Alliance
    todd.fast@e...
    [email protected]
    [email protected]

  • How to get the values of an Array using JSP Tags

    Hey guys,
    I need some help. I've splited a String using
    fn:split(String, delim) where String = "1,2,3,4" and delim is ,
    This method returns an Array of splited Strings. how do i get the values from this array using jsp tags. I don't wanna put java code to achive that.
    Any help would be highly appreciated
    Thanks

    The JSTL forEach tag.
    In fact if all you want to do is iterate over the comma separated list, the forEach tag supports that without having to use the split function.
    <c:set var="list" value="1,2,3,4"/>
    <c:forEach var="num" items="${list}">
      <c:out value="${num}"/>
    </c:forEach>The c:forTokens method will let you do this with delimiters other than a comma, but the forEach tag works well just with the comma-delimited string.

  • Error when run a simple sample using jsp tag

    When i run a jsp using jsp tag, the tomcat gave me the following information:
    Resolve entity failed-//Sun Microsystems,Inc.//DTD JSP Tag Library 1.2//EN http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd
    My tld file is:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib
    PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
    "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    <taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>sample</short-name>
    <uri>WEB-INF/sampleTag</uri>
    <display-name>SampleTag</display-name>
    <description>Sample TLD</description>
    <tag>
    <name>time</name>
    <tag-class>com.sample.taglib.TimeTag</tag-class>
    <body-content>empty</body-content>
    </tag>
    </taglib>
    Anybody can tell me why?
    Thanks!!!

    It's strange bacause DTD is available under given address.
    Which JSP version are you using?
    Do you have any other tld file, which uses the same DTD version? Do tags define in it work properly?
    Maby try to use 1.1 version of DTD?
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">But remember than version 1.1 has another node names (see http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd).

Maybe you are looking for