Philisophical Question:  Tools for synchronizing JSPs, Java Beans and XML?

This is a "best practices" question...
The JSTL and JSF tags provide a lot of support for minimizing the amount of text that must be included in a JSP page. For example:
<c:out value="${customer.firstName}"/>This snippet will find an object named "customer" in any of the JSP scopes, extract the value of the property named "firstName", and output it as part of the page.
Here are my questions:
(1) Is there a recommended method to communicate to the page designer what objects are in scope for a particular page, and what the properties of those objects are?
(2) Is there any programmatic way to determine from the program's source code that an object with the specified name and of the expected type will be in scope at run time?
I would love to have an IDE that would be able to help the page designer by providing a list of the objects that are expected to be in scope, along with the name of their properties. What conventions exist to make this possible?

Maybe you like this, it's one of dozens of tools for Struts and in version 3.0
http://www.scioworks.com/scioworks_camino.html
hth,
.V

Similar Messages

  • Question about main difference between Java bean and Java class in JSP

    Hi All,
    I am new to Java Bean and wonder what is the main difference to use a Bean or an Object in the jsp. I have search on the forum and find some post also asking the question but still answer my doubt. Indeed, what is the real advantage of using bean in jsp.
    Let me give an example to illustrate my question:
    <code>
    <%@ page errorPage="errorpage.jsp" %>
    <%@ page import="ShoppingCart" %>
    <!-- Instantiate the Counter bean with an id of "counter" -->
    <jsp:useBean id="cart" scope="session" class="ShoppingCart" />
    <html>
    <head><title>Shopping Cart</title></head>
    <body bgcolor="#FFFFFF">
    Your cart's ID is: <%=cart.getId()%>.
    </body>
    <html>
    </code>
    In the above code, I can also create a object of ShoppingCart by new operator then get the id at the following way.
    <code>
    <%
    ShoppingCart cart = new ShoppingCart();
    out.println(cart.getId());
    %>
    </code>
    Now my question is what is the difference between the two method? As in my mind, a normal class can also have it setter and getter methods for its properties. But someone may say that, there is a scope="session", which can be declared in an normal object. It may be a point but it can be easily solved but putting the object in session by "session.setAttribute("cart", cart)".
    I have been searching on this issue on the internet for a long time and most of them just say someting like "persistance of state", "bean follow some conventions of naming", "bean must implement ser" and so on. All of above can be solved by other means, for example, a normal class can also follow the convention. I am really get confused with it, and really want to know what is the main point(s) of using the java bean.
    Any help will be highly apprecaited. Thanks!!!
    Best Regards,
    Alex

    Hi All,
    I am new to Java Bean and wonder what is the main
    difference to use a Bean or an Object in the jsp. The first thing to realize is that JavaBeans are just Plain Old Java Objects (POJOs) that follow a specific set of semantics (get/set methods, etc...). So what is the difference between a Bean and an Object? Nothing.
    <jsp:useBean id="cart" scope="session" class="ShoppingCart" />
    In the above code, I can also create a object of
    ShoppingCart by new operator then get the id at the
    following way.
    ShoppingCart cart = new ShoppingCart();
    out.println(cart.getId());
    ...Sure you could. And if the Cart was in a package (it has to be) you also need to put an import statement in. Oh, and to make sure the object is accessable in the same scope, you have to put it into the PageContext scope. And to totally equal, you first check to see if that object already exists in scope. So to get the equivalant of this:
    <jsp:useBean id="cart" class="my.pack.ShoppingCart"/>Then your scriptlet looks like this:
    <%@ page import="my.pack.ShoppingCart %>
    <%
      ShoppingCart cart = pageContext.getAttribute("cart");
      if (cart == null) {
        cart = new ShoppingCart();
        pageContext.setAttribute("cart", cart);
    %>So it is a lot more work.
    As in my mind, a normal class can also
    have it setter and getter methods for its properties.True ... See below.
    But someone may say that, there is a scope="session",
    which can be declared in an normal object.As long as the object is serializeable, yes.
    It may be
    a point but it can be easily solved but putting the
    object in session by "session.setAttribute("cart",
    cart)".Possible, but if the object isn't serializable it can be unsafe. As the point I mentioned above, the useBean tag allows you to check if the bean exists already, and use that, or make a new one if it does not yet exist in one line. A lot easier than the code you need to use otherwise.
    I have been searching on this issue on the internet
    for a long time and most of them just say someting
    like "persistance of state", "bean follow some
    conventions of naming", "bean must implement ser" and
    so on. Right, that would go along the lines of the definition of what a JavaBean is.
    All of above can be solved by other means, for
    example, a normal class can also follow the
    convention. And if it does - then it is a JavaBean! A JavaBean is any Object whose class definition would include all of the following:
    1) A public, no-argument constructor
    2) Implements Serializeable
    3) Properties are revealed through public mutator methods (void return type, start with 'set' have a single Object parameter list) and public accessor methods (Object return type, void parameter list, begin with 'get').
    4) Contain any necessary event handling methods. Depending on the purpose of the bean, you may include event handlers for when the properties change.
    I am really get confused with it, and
    really want to know what is the main point(s) of
    using the java bean.JavaBeans are normal objects that follow these conventions. Because they do, then you can access them through simplified means. For example, One way of having an object in session that contains data I want to print our might be:
    <%@ page import="my.pack.ShoppingCart %>
    <%
      ShoppingCart cart = session.getAttribute("cart");
      if (cart == null) {
        cart = new ShoppingCart();
        session.setAttribute("cart", cart);
    %>Then later where I want to print a total:
    <% out.print(cart.getTotal() %>Or, if the cart is a JavaBean I could do this:
    <jsp:useBean id="cart" class="my.pack.ShoppingCart" scope="session"/>
    Then later on:
    <jsp:getProperty name="cart" property="total"/>
    Or perhaps I want to set some properties on the object that I get off of the URL's parameter group. I could do this:
    <%
      ShoppingCart cart = session.getAttribute("cart");
      if (cart == null) {
        cart = new ShoppingCart();
        cart.setCreditCard(request.getParameter("creditCard"));
        cart.setFirstName(request.getParameter("firstName"));
        cart.setLastName(request.getParameter("lastName"));
        cart.setBillingAddress1(request.getParameter("billingAddress1"));
        cart.setBillingAddress2(request.getParameter("billingAddress2"));
        cart.setZipCode(request.getParameter("zipCode"));
        cart.setRegion(request.getParameter("region"));
        cart.setCountry(request.getParameter("country"));
        pageContext.setAttribute("cart", cart);
        session.setAttribute("cart", cart);
      }Or you could use:
    <jsp:useBean id="cart" class="my.pack.ShoppingCart" scope="session">
      <jsp:setProperty name="cart" property="*"/>
    </jsp:useBean>The second seems easier to me.
    It also allows you to use your objects in more varied cases - for example, JSTL (the standard tag libraries) and EL (expression language) only work with JavaBeans (objects that follow the JavaBeans conventions) because they expect objects to have the no-arg constuctor, and properties accessed/changed via getXXX and setXXX methods.
    >
    Any help will be highly apprecaited. Thanks!!!
    Best Regards,
    Alex

  • First use of jsp and java bean and "Unable to compile class for JSP" error

    Hi,
    I am trying to create my first jsp + java bean and I get a basic error (but I have no clue what it depends on exactly). Tomcat seems to cannot find my class file in the path. Maybe it is because I did not create a web.xml file. Did I forgot to put a line in my jsp file to import my bean?
    Thank you very much for your help.
    Here is my error:
    An error occurred at line: 2 in the jsp file: /login.jsp
    Generated servlet error:
    [javac] Compiling 1 source file
    /usr/local/tomcat/jakarta-tomcat-5/build/work/Catalina/localhost/test/org/apache/jsp/login_jsp.java:43: cannot resolve symbol
    symbol : class CMBConnect
    location: class org.apache.jsp.login_jsp
    CMBConnect test = null;
    I only have this in my directory:
    test/login.jsp
    test/WEB-INF/classes/CMBConnect.java
    test/WEB-INF/classes/CMBConnect.class
    Do I need to declare another directory in classes to put my class file in it and package my bean differently?
    Here is my login.jsp:
    <%@ page errorPage="error.jsp" %>
    <jsp:useBean id="test" type="CMBConnect" scope="session" />
    <html>
    <head>
    <title>my test</title>
    </head>
    <body>
    <h3>Login information</h3>
    <b><%=session.getValue("customerinfo.message")%></b>
    <form> ....... </form>
    </body>
    </html>
    and here is my CMBConnect.java:
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class CMBConnect
    public CMBConnect () { }
    public String openConnection(String id, String password) {
    String returnText = "";
    try {
    Connection con = null;
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    con = DriverManager.getConnection("jdbc:oracle:thin:@myserver.abc.com:1521:TEST", id, password);
    if(con.isClosed())
    returnText = "Cannot connect to Oracle server using TCP/IP...";
    else
    returnText = "Connection successful";
    } catch (Exception e) { returnText = returnText + e; }
    return returnText;
    Thanks again!

    Thanks for you help
    I created the package and I get this error this time:
    javax.servlet.ServletException: bean test not found within scope
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:822)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:755)
         org.apache.jsp.login_jsp._jspService(login_jsp.java:68)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:268)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:277)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:223)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

  • Java Beans and JSP Arrays

    Hi..
    I am trying to pass a 2D String array to a Java Bean and i am getting
    "java.lang.NoSuchMethodError"
    Any Ideas?
    Thanks
    Joe
    Jsp Call
    Sorts s = new Sorts();
    s.getTotal(items);
    "items[][]" is a 2 dimentional arrays and size can vary..
    Java Bean
    public class Sorts implements Serializable {
    public double getTotal(String sItems[][]){
    double aSum=0;
    for(int i=0;i<sItems[0].length;i++){
    aSum=aSum+(Double.parseDouble(sItems[1])*Double.parseDouble(sItems[2][i]));
    return aSum;

    Can someone show me how to pass a 2 Dimentional Array to a Java Bean method? obviously i am doing something wrong.
    Joe
    Hi..
    I am trying to pass a 2D String array to a Java Bean
    and i am getting
    "java.lang.NoSuchMethodError"
    Any Ideas?
    Thanks
    Joe
    Jsp Call
    Sorts s = new Sorts();
    s.getTotal(items);
    "items[][]" is a 2 dimentional arrays and size can
    vary..
    Java Bean
    public class Sorts implements Serializable {
    public double getTotal(String sItems[][]){
    double aSum=0;
    for(int i=0;i<sItems[0].length;i++){
    aSum=aSum+(Double.parseDouble(sItems[1])*Double.pars
    Double(sItems[2][i]));
    return aSum;

  • Do all JSP/Java bean webapps need an xml file?

    Hi all,
    I have a jsp/ java bean webb application. This is being run on Resin at
    Lunarpages.
    The site has been shut down due to 'class-loader' not found. I was told it
    was causing problems for other java users on the server.
    I realise this is limited information but any insight would be welcome.
    This is our first JSP / java bean web app.
    Also if anyone could tell me briefly the purpose of an xml document in a JSP/Java bean webapplication I would greatly appreciate it.
    Thanks in advance
    Regards
    Jim

    Hi there,
    Thanks for the reply.
    Our application allows people to purchase wedding pictures online. It ran locally on resin we then had to change all the relative file paths in order to deploy it on lunarpages.
    Lunarpages use resin also.
    We had the application tested and working on Lunarpages for the last week .This morning they sent us a message saying they had shut our JSP pages down as our application was causing problems for other java users. errant code unknown element ' class-loader' .
    Not too much help from lunarpages...
    thanks

  • Hi frnds i want to help in servlet,java bean and JSP

    hi friends i'm right now in M.SC(IT) and i want to do project in SERVLET,,JAVA BEANS and JSP ,
    so pls give me a title about that
    NOTE: I develop a project in group(2 persons there)
    my email id is : [email protected] , [email protected] , [email protected]

    You cannot pair your iPod to a cell phone, so forget about it.
    The only way you can get free WiFi is to hang out at a Denny's, a Starbucks, or a truck stop, and I don't think your parents would approve....

  • Need ideas for new PJC/Java Beans

    Hello everybody,
    I am always looking for new ideas about the Java Bean and PJC stuff. Sometimes I have good ideas about this, but sometimes it is quite a pain to find something new and innovative.
    If you have ideas or needs about this, let me know in this thread.
    (Sorry Oracle staff if I am going beyond my rights by using the Forum for that purpose)
    Francois

    Francois ,
    I think that we all need to thank you for all your hard work promoting Oracle Forms.
    Your input and constant support on this forum is greatly appreciated.
    But I personally think that all this needs to be addressed by Oracle.
    Your wrote
    Sometimes I have good ideas about this, but sometimes it is quite a pain to find something new and innovative.
    And I agree with you.
    You can go as far as the Forms let you go...
    Thanks,
    Michael

  • Third Party tool for sap neteraver Java/EP administration

    Hi Experts,
    Do we have any third Party tool for SAP Neteweave -java or Portal administration like Wily?
    I am looking any tool that can generate graphical reports for System health cheack and all like Wily Interscope.
    Thanks
    Narpal

    Hi,
    I hope links like this are allowed with the new SDN rules. We use something called [Click Stream|http://www.sweetlets.com/click_stream.html].
    Quite nifty little tool and not even expensive.
    Regards,
    Andi

  • Is there any difference between java Beans and general class library?

    Hello,
    I know a Java Bean is just a java object. But also a general class instance is also a java object. So can you tell me difference between a java bean and a general class instance? Or are the two just the same?
    I assume a certain class is ("abc.class")
    Second question is is it correct that we must only use the tag <jsp:useBean id="obj" class="abc.class" scope="page" /> when we are writng jsp program which engage in using a class?Any other way to use a class( create object)? such as use the java keyword "new" inside jsp program?
    JohnWen604
    19-July-2005

    a bean is a Java class, but a Java class does not have to be a bean. In other words a bean in a specific Java class and has rules that have to be followed before you have a bean--like a no argument constructor. There are many other features of beans that you may implement if you so choose, but read over the bean tutorial and you'll see, there is a lot to a bean that is just not there for many of the Java classes.
    Second question: I'll defer to someone else, I do way to little JSP's to be able to say "must only[\b]".

  • Serializing Java Bean to XML

    I would like to know if it is possible with XMLBeans to convert existing java beans to XML.
    I learnt by going trhu' few materials of XMLBeans that we need to create bean classes from XSD and can use these classes for marshalling/unmarshalling.
    But I have java beans already defined which I want to serialize/deserialize to/from XML.
    Thanks in advance.
    --Ramu                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    If you are not interested in writing a bunch of code (which is probably the case), I know of a couple options for WLS 8.1:
    1. Use the "undocumented" and "unsupported" java2xsd class, in the %WL_HOME%\server\lib\webservices.jar.
    2. Use the Java2Schema tool in the Systinet Server for Java product.
    Here's the contents of a sample build.xml that uses the java2xsd class:
    <project
    name="java2xsd"
    default="assemble"
    basedir="."
    >
         <path id="compile.classpath">
              <fileset dir="d:/bea81sp4/">
                   <include name="lib/tools.jar" />
              </fileset>
              <fileset dir="d:/bea81sp4/weblogic81">
                   <include name="server/lib/weblogic.jar"/>
                   <include name="server/lib/webservices.jar"/>
              </fileset>
         </path>
         <target name="clean">
              <delete dir="xsd" />
         </target>
         <target name="run-java2xsd">
    <delete dir="xsd" />
    <mkdir dir="xsd"/>
    <java
         classname="weblogic.xml.schema.binding.util.java2xsd"
    fork="true"
    >
    <jvmarg line="-Djava.io.tmpdir=xsd"/>
    <arg line="
    com.acme.world.schema.x2005.x11.elending.Loan
    com.acme.world.schema.x2005.x11.elending.Applicant
    com.acme.world.schema.x2005.x11.ebillpay.Account
    "/>
    <classpath>
    <path refid="compile.classpath"/>
    <pathelement location="classes"/>
    </classpath>
    </java>
         </target>
         <target name="assemble" depends="run-java2xsd">
         </target>
    </project>
    Here, you would replace the paths in the <path> element of course, but you would also need to come up with a way to provide a list of the JavaBean classes to process. The good thing is that java2xsd is smart enough to put all the classes in a given Java package, in the same <xs:schema> element :-) For instance, in:
    <arg line="
    com.acme.world.schema.x2005.x11.elending.Loan
    com.acme.world.schema.x2005.x11.elending.Applicant
    com.acme.world.schema.x2005.x11.ebillpay.Account
    "/>
    the complexType element for "Loan" and "Applicant", will be defined in the same <xs:schema>. There will only be one schemas.xsd file. I don't know of an easy way to change the file name, but it will contain a <xs:schema> for each unique Java package name. Once you have this schemas.xsd file, you can decide how you want to create the XMLBeans from it. You can either break each <xs:schema> element out into it's own .xsd file, or create a WSDL that uses the contents of the schemas.xsd file. You'll notice that there is a <type> element wrapping all the <xs:schema> elements in the schemas.xsd file, which is exactly the name of the element that WSDL uses :-)
    Again, java2xsd is not a "supported" class, so don't confuse it (or the information provided above) with being "the tool that BEA provides" for doing what you want to do :-)
    Regards,
    Mike Wooten

  • Create a web service from java bean and map exceptions to SOAP faults

    Hi,
    We have to expose our Session stateless EJB3 as web services. I've tried to use annotations and jdev wizard "java bean to web service" and it works fine.
    Our problem now is that our methods can throw a business exception that contains a list of error message strings to be presented on the client.
    I did not find any way to use annotations to make it build a wsdl with soap fault mapped to our exception class. Neither I could to make the wizard to create wsdl with faults.
    As we are exposing already designed and implemented classes as web services, I think the bottom-top (java->wsdl) approach is better that top->botton (wsdl->java). Therefore, I'm looking for a possibility to generate the web services from the java beans and have the exception be mapped to a soap fault message.
    We are using jdev 10.1.3.1 and OAS 10.1.3.1., is there a way to map exceptions to soap faults using bottom->top approach?
    thank you

    A couple of links that may be of help:
    http://www.netbeans.org/servlets/ReadMsg?listName=nbj2ee&msgNo=1218
    My last question concerning web services:
    I have already written a session bean and I'd like to add some methods
    as a web service to it, how do I do that?
    Or I can only create another bean for a webservice and cannot modify the
    original one?You might create web service with existing sources and select you bean. New web services with appropriate lookup method will be generated.
    All web service method, that will be exposed in web service, you
    should add itself (Pop-up menu Web Service -> Add operation)
    http://usersguide.netbeans.org/files/documents/40/73/Chapter9-WebServices.pdf

  • JAVA beans and JAVA related services require Oracle client to be installed?

    Can you please advice whether an application server that make use of JAVA beans and JAVA related services require Oracle client to be installed? For an example if the solution build based on Java and JBOSS to be used as application server, do we still require oracle client to be installed and configure the tnsnames in order to communicate to database server?

    SHANOJ wrote:
    Can you please advice whether an application server that make use of JAVA beans and JAVA related services require Oracle client to be installed? For an example if the solution build based on Java and JBOSS to be used as application server, do we still require oracle client to be installed and configure the tnsnames in order to communicate to database server?Oracle client is not required when JDBC is used to connect to the remote DB

  • Java beans and PJC's

    can any one give me the differences of java beans and pluggable java components.

    Pluggable Java Components (PJCs) are JavaBeans that are either embedded in the form as a separate object (Bean Area on the Layout Editor toolbar) or that act as a substitute for a Forms object such as an item or button. Incorporating PJCs will allow you to extend the capabilities of Forms and solve problems such as how to read and write to the client's file system, how to provide a Java spell checker for a Web form, how to implement timers that fire only on the client.
    You could find some examples at:
    http://otn.oracle.com/products/ids/daily/mar04.html
    Thanks,
    Rashmi.

  • The differents between Java Beans and Enterprise Java Beans

    Please help me!
    What is the differents between JavaBeans and Enterprise Java Beans (EJB) ?
    Thank's for your answer

    Enterprise Java Beans are special type of java beans.
    EJBs invented to be used via remote VMs or remote computer
    systems.They must be deployed on server to become accesible for remote
    clients.

  • Question about Java,XSLT and XML

    I am new to Java and XML. I'm not quite clear the relationship between Java,XSLT and XML.
    To exercise, I am going to write a Java program that makes embedded calls to an XSLT processor(XALAN), to produce results for several constrained transformations from a given XML document(x.xml) such as:
    1.Transform the x.xml (which satisfies d1.dtd) in such a way that it now conforms to the DTD d2.dtd. Output the resulting xx.xml document.
    2.query some information from the x.xml and then form an Html output.
    3.summary some information, do some statistics from the x.xml and then form an Html output.
    I don't konw which java classes and XSLT functions might be used.(Actually I don't know how/where to start).
    Can anyone give me some clue ?
    thanks a lot!

    You must provide XSLT stylesheeds to specify transformations (1), (2),
    and (3); let's call those stylesheets task1.xsl and so on.
    The following code will transform x.xml into xx.xml according to task1.xsl. It gives you an idea which packages and classes to use, but it doesn't teach you proper Java programming technics :)
    import java.io.File;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    public class Test
        public static void main(String[] args) throws Exception
            TransformerFactory factory = TransformerFactory.newInstance();
            Source config = new StreamSource(new File("task1.xsl"));
            Transformer transformer = factory.newTransformer(config);
            Source source = new StreamSource(new File("x.xml"));
            Result result = new StreamResult(new File("xx.xml"));
            transformer.transform(source, result);
    }To read about XSLT, see:
    http://www.w3.org/TR/xslt
    there is a tutorial on using XSLT with Java:
    http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/xslt/index.html.

Maybe you are looking for

  • How do I save settings for a View?

    Hi Anyone who can help me, it'll be great... I have created a view in eclipse. When the user opens the eclipse workspace that view is also opened. The user can use the view to search for code. When the workspace is closed the view is saved because th

  • Mac Mail do not read/show emails prior Lion update

    Hi! I have faced the same problems as many others with Mac Mail (on my iMac), ie. could not launch Mail after update. Solved that problem with deleting some plist-files and everything looked good. However, Mail can not read/show/find emails prior the

  • EPMFunction to get member ID based on properties

    Hi experts, I'm looking for an (EPM)function to receive a certain dimension member into an excel cell based on serveral properties. Tried EPMDimensionPropertyValues() and EPMSelectMember() but the Point is that in any case a need to know the ID of th

  • To say BT are useless would be and overestimation

    Ive left BT as my broadband and calls package is going up and according to the terms on the email i got I can: If this change means you want to end your service, you can do that by telling us within ten days of receipt of this email without needing t

  • Cannot find mio or .m files in the bankapp files in the eval version of tuxedo for redhat linux

    Hi, After having installed tuxedo in redhat linux and run the simpapp application said in the documentation,the next step was to put up the bankapp application.However I am not able to find the mio file,mentioned in the documentation nor any of the .