JSP Bean problem
Hi
I'm having a problem with a very simple bean, I'm using NetBeans 4.1 and I have the following files:
project/index.jsp
project/myBeans/Characters.java
in the index.jsp file I call the bean using the following code
<jsp:useBean id="charac" class="myBeans.Characters" />but I am getting the following error
org.apache.jasper.JasperException: /character.jsp(16,8) The value for the useBean class attribute myBeans.Characters is invalid.the code works perfectly if i call it in the jsp file as follows:
<%@page import="myBeans.*"%>
Characters charac = new Characters();so I assume the problem lies some where in the useBean call???
any help appreciated
Most common cause of this problem
1 - class file is not up to date.
2 - bean does not have a public no-args constructor.
From the example you have it looks like you have a public no-args constructor.
Check that the class file is in the correct place, and is up to date.
Try restarting Tomcat/server to see if that helps.
Similar Messages
-
hi all i have some trouble ...
i`m making a register form in jsp and i want to put the data into bean and then retrieve the data in a servlet
in the jsp i have:
<jsp:useBean id="data" class="DataBean">
<jsp:setProperty name="data" property="*"/>
</jsp:useBean>
<form method=post action="/SubmitServlet">
<input type=text name="message">
<input type=submit value="submit">
</form>
in the bean i have:
private String message = null;
public String getMessage() {
return message;
public void setMessage(String string) {
message = string;
and in the servlet:
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
HttpSession session = req.getSession();
DataBean adr = (DataBean)session.getAttribute("data");
if (adr==null) {
System.out.println("ada");
else {
System.out.println(adr.getMessage());
.... and the server prints me the null string ... so the bean is not updated when i`m submiting the information from the jsp to the servlet ....
how could i make it right?Oh, I see, when you said 'the Servlet prints the null string', you meant it gets to this line:
System.out.println(adr.getMessage());
and prints "null", right?
Well, that is because you never set the message. The way your JSP works:
1) Create a DataBean and store it in session (are there paramameters? no, so don't call any set methods)
2) Display a Form.
Then when the User presses the submit button, you have an action set to the Servlet /SubmitServlet, not back to the JSP. So, the Servlet has to handle the parameters passed from the form, not JSP. The JSP is done after it displays the page.
public void doPost(...) ...
HttpSession session = req.getSession();
DataBean adr = (DataBean)session.getAttribute("data");
if (adr==null) {
adr = new DataBean();
session.setAttribute("data", adr);
String message = req.getParameter("message");
adr.setMessage(message);
System.out.println("The Message Is: "+message);
//Maybe do a forward?? or some display??
}If you want the JSP to handle the parameters sent by the form, then you will have to make the form's action set to the same address, not to the servlet (see my message in the first reply about how to make sure the setProperty gets called...) -
Hi all,
i am new to servlet and Beans.I am facing a problem currently i have designed a JSP page for adding user information after submitting the information i am calling a servlet from that JSP page to submitt data to the data base which is MYsql,i have made a bean namely DatabaseConnection to connect to the database.,the submission of data is working fine.
the problem i am facing is in displaying the data from the database.again we have made a servlet to fetch data from the database we are using a Bean to set the data in to beans ,currently we are passing the RecordSet as an argument to the SetData function in the bean which is setting the data in the bean variables. At the end of the servlet i,e after setting the data in the beans we are forwarind the controll to the Display.JSP form using request dispatcher method .In the Display form we are using <use:Jsp beans> tage and <get property tag> but unable to show any data it's showing null there.
i need help if some body guide me to the right track...
Thanks in advance
umeshawasss..
Y dont u send ur jsp which used jsp:use bean tag? Hope u are setting the bean correctly in the request or seesion scope from the servlet before commin to jsp.. :)
regards
Shanu -
NEWBIE SUPER EASY JSP / BEAN
With about half a dozen books sitting around my desk, I can't get a REAL basic jsp to work. I FINALLY got tomcat to NOT give run time errors, however the web page simply outputs "This is output:" I know I am an idiot, but this JSP / bean stuff is upsetting. Any help on the following code would be great.
basic.jsp is as follows:
<jsp:useBean id="myBean" class="basic.basicbean" scope="session"/>
<html>
<head>
<title>
A Simple JSP
</title>
</head>
<body>
<%
myBean.setBasicName("Michelle");
%>
This is output: <% myBean.getBasicName();%>
</body>
</html>
basicbean.java is as follows:
package basic;
import java.beans.*;
public class basicbean {
private String BasicName=null;
/** Creates new basicbean */
public basicbean() {}
public String getBasicName() {
return this.BasicName;
public void setBasicName(String value) {
this.BasicName = value;
Made the .java into the class put it in the basic directory under the classes/basic directory of the WEB-INF. The JSP page loads, but only output is: "This is output:" I am using Tomcat as the JSP server. "Core JSP" "Core Servlets and JavaServer Pages" "Advanced JavaServer Pages" "JSP, Servlets, and MySQL", and "Java Server Pages for Dummies" and I still can't get it. Thanks for helping out an idiot.
-JimYou are very close; just a small error in the line:
This is output: <% myBean.getBasicName();%>
The problem is your just simply calling the method and tossing the return value. You have three ways of outputing the bean property:
This is output: <% out.print(myBean.getBasicName();%>
or
This is output: <%=myBean.getBasicName()%>
or
This is output: <jsp:getProperty name="myBean" property="BasicName" />
If you use the <jsp:getProperty> approach, then you must have a <jsp:useBean> somewhere above the getProperty tag.
- Chris -
Create jsp/bean webapp deploy fine... add JSTL library wont deploy!
winxp
SJSE8
PROBLEM:
Using the new project wizard, I create a simple jsp/bean webapp using the embedded tomcat 5.5.7 as server... It deploys and runs with now issue
Then, I right-click on project name (in project tree)... click properties... add library... select "JSTL 1.1".... do clean/build.... do deploy - which fails!
message is: "Failed to deploy application at context path /bcd" (where bcd is my project name)
Why does this happen?
--------------simple app---------------
***jsp1.jsp****
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>JSP Page</h1>
<h1>get stuff JSP Page</h1>
<jsp:useBean id="a" class="bcdpkg.IndexBean" scope="request"/>
<h3>after1...</h3>
<!--jsp:setProperty name="a" property="stuff" value="xxx" /-->
<jsp:getProperty name="a" property="stuff" />
</body>
</html>***IndexBean.java***
package bcdpkg;
public class IndexBean
/** Creates a new instance of IndexBean */
public IndexBean()
private String stuff = "this is stuff";
public String getStuff()
return this.stuff;
public void setStuff(String s)
this.stuff = s;
}well.... I restarted SJSE8 (and tomcat 5.5.7) and now I can right-click on the project and click deploy...successfully.
(Apologies for the "hair trigger" posting)
I'll reply once more if it happens again.
thanx -
Redirect from jsp bean to jsp or html page
I am facing a problem in redirecting to a jsp page from jsp bean
How do i redirect from jsp bean to any other page like jsp or html.
[email protected]Hi
The solution you suggested we tried it long before only but it is not feasible for us as we have to implement it in all web pages which are in thousands.
My need is like this.
We have given specific time to each of our registered user , as user logs to our portal we calculate session time in bean and as he logs out is new time gets updated. (its like dial up connection)
Now what happens consider user has left only 10 minutes balance, I can calculate and keep track for his time in bean.Now as the time becomes zero I want to redirect him to home page.
As u said i can get return value zero for bean and can do it ,but our webpages are near about thousands. -
Re: [iPlanet-JATO] sp3 jsp compiler problem
Weiguo,
First, Matt is correct, the regular expression tool is perfect for general text
substitution situations, and as a completely independent tool its use is not
restricted to migration situations (or file types for that matter).
Second, I sympathize with the unfortunate trouble you are experiencing due to
Jasper's (perhaps more strict) compilation, but in what way did the iMT
automated translation contribute to these inconsistencies that you cited?
1. Changed the case of the tag attribute to be the same as what's
defined in tld.
example: changed OnClick to onClick
The iMT does not generate any OnClick or onClick clauses per se. In a
translation situation, the only way "OnClick" would have been introduced was if
it had been part of the pre-existing project's "extraHTML" (which was written
by the original customer and just passed through unchanged by the iMT) or if it
was added manually by the post-migration developer.
2. Removed attributes which are not defined in tld.
example: escape attribute only defined in three tags
but in some pages, it's used although it's not defined as an
attribute
of certain tags. The jasper compiler doesn't like it.Can you give soem examples? Is there a definite pattern? Again, this might be
similar to the OnClick situation described above?
3. In an end tag, there can't be any space.
example: </content > doesn't work. </content> works.
Again, the content tag would never have been generated by the iMT. There was no
equivalent in the NetDynamics world, so any content tags in your code must have
been introduced by your developers manually. Its a shame that jasper is so
particular, but the iMT could not help you out here even if we wanted to. The
constants that are used by the iMT are defined in
com.iplanet.moko.jsp.convert.JspConversionConstants. From what I can see, the
only situation of a closing tag with any space in it is
public static final String CLOSE_EMPTY_ELEMENT = " />";
But that should not cause the type of problem you are referring to.
Mike
----- Original Message -----
From: Matthew Stevens
Sent: Thursday, September 06, 2001 10:16 AM
Subject: RE: [iPlanet-JATO] sp3 jsp compiler problem
Weiguo,
Others will chime in for sure...I would highly recommend the Regex Tool from
the iMT 1.1.1 for tackling this type of problem. Mike, Todd and myself have
posted to the group (even recently) on directions and advantages of creating
your own RULES (rules file) in XML for arbitary batch processing of source.
matt
-----Original Message-----
From: weiguo.wang@b...
[mailto:<a href="/group/SunONE-JATO/post?protectID=125056020108194190033029175101192165174144234026000079108238073194105057099246073154180137239239223019162">weiguo.wang@b...</a>]
Sent: Thursday, September 06, 2001 12:25 PM
Subject: [iPlanet-JATO] sp3 jsp compiler problem
Matt/Mike/Todd,
We are trying to migrate to sp3 right now, but have had a lot of
issues with the new jasper compiler.
The following workaround has been employed to solve the issues:
1. Changed the case of the tag attribute to be the same as what's
defined in tld.
example: changed OnClick to onClick
2. Removed attributes which are not defined in tld.
example: escape attribute only defined in three tags
but in some pages, it's used although it's not defined as an
attribute
of certain tags. The jasper compiler doesn't like it.
3. In an end tag, there can't be any space.
example: </content > doesn't work. </content> works.
As I see it, we have two options to go about solving this problem:
1. Write a script which will iterate through all the jsp files and
call jspc on them. Fix the errors manually when jspc fails. Jspc will
flag the line number where an error occurs.
2. Write a utility which scans the jsp files and fix the errors when
they are encountered. We should define what's an error and how to
correct it. It's best if we combine this with solution 1 since we
might miss an error condition.
Actually, there might be another option, which is seeking help from
you guys since you have better understanding of JATO and iAS. Can you
do anything to help us?
We would be happy to hear your thoughts.
At last, I would like to suggest modifying the moko tool so that
these rules are enforced and the generated JSPs work with the new
compiler. This is for the benefit of any new migration projects.
Thanks a lot.
Weiguo
[email protected]
Choose from 1000s of job listings!
[email protected]
[Non-text portions of this message have been removed]Thanks a lot Matt and Mike for your prompt replies.
I agree completely that iMT doesn't introduce the inconsistencies.
About the three cases I mentioned, the third one happens only in
manually created JSPs. So it has nothing to do with iMT. The first
two are mainly due to the existing HTML code, as you rightly pointed
out.
The reason I made the suggestion is since we know that case 1 and 2
won't pass the japser compiler in sp3, we have to do something about
it. The best place to do this, in my mind, is iMT. Of course, there
might be some twists that make it impossible or difficult to do this
kind of case manipulation or attribute discard.
Weiguo
--- In iPlanet-JATO@y..., "Mike Frisino" <Michael.Frisino@S...> wrote:
Weiguo,
First, Matt is correct, the regular expression tool is perfect for general text substitution situations, and as a completely independent
tool its use is not restricted to migration situations (or file types
for that matter).
>
Second, I sympathize with the unfortunate trouble you are experiencing due to Jasper's (perhaps more strict) compilation, but
in what way did the iMT automated translation contribute to these
inconsistencies that you cited?
>
1. Changed the case of the tag attribute to be the same as what's
defined in tld.
example: changed OnClick to onClick
The iMT does not generate any OnClick or onClick clauses per se. In a translation situation, the only way "OnClick" would have been
introduced was if it had been part of the pre-existing
project's "extraHTML" (which was written by the original customer and
just passed through unchanged by the iMT) or if it was added manually
by the post-migration developer.
>
2. Removed attributes which are not defined in tld.
example: escape attribute only defined in three tags
but in some pages, it's used although it's not defined as an
attribute
of certain tags. The jasper compiler doesn't like it.Can you give soem examples? Is there a definite pattern? Again, this might be similar to the OnClick situation described above?
>
>
3. In an end tag, there can't be any space.
example: </content > doesn't work. </content> works.
Again, the content tag would never have been generated by the iMT. There was no equivalent in the NetDynamics world, so any content tags
in your code must have been introduced by your developers manually.
Its a shame that jasper is so particular, but the iMT could not help
you out here even if we wanted to. The constants that are used by the
iMT are defined in
com.iplanet.moko.jsp.convert.JspConversionConstants. From what I can
see, the only situation of a closing tag with any space in it is
public static final String CLOSE_EMPTY_ELEMENT = " />";
But that should not cause the type of problem you are referring to.
Mike
----- Original Message -----
From: Matthew Stevens
Sent: Thursday, September 06, 2001 10:16 AM
Subject: RE: [iPlanet-JATO] sp3 jsp compiler problem
Weiguo,
Others will chime in for sure...I would highly recommend the Regex Tool from
the iMT 1.1.1 for tackling this type of problem. Mike, Todd and myself have
posted to the group (even recently) on directions and advantages of creating
your own RULES (rules file) in XML for arbitary batch processing of source.
>
matt
-----Original Message-----
From: weiguo.wang@b...
[mailto:<a href="/group/SunONE-JATO/post?protectID=125056020108194190033029175101192165174048139046">weiguo.wang@b...</a>]
Sent: Thursday, September 06, 2001 12:25 PM
Subject: [iPlanet-JATO] sp3 jsp compiler problem
Matt/Mike/Todd,
We are trying to migrate to sp3 right now, but have had a lot of
issues with the new jasper compiler.
The following workaround has been employed to solve the issues:
1. Changed the case of the tag attribute to be the same as
what's
defined in tld.
example: changed OnClick to onClick
2. Removed attributes which are not defined in tld.
example: escape attribute only defined in three tags
but in some pages, it's used although it's not defined as an
attribute
of certain tags. The jasper compiler doesn't like it.
3. In an end tag, there can't be any space.
example: </content > doesn't work. </content> works.
As I see it, we have two options to go about solving this problem:
>>
1. Write a script which will iterate through all the jsp files and
call jspc on them. Fix the errors manually when jspc fails. Jspc will
flag the line number where an error occurs.
2. Write a utility which scans the jsp files and fix the errors when
they are encountered. We should define what's an error and how to
correct it. It's best if we combine this with solution 1 since we
might miss an error condition.
Actually, there might be another option, which is seeking help from
you guys since you have better understanding of JATO and iAS. Can you
do anything to help us?
We would be happy to hear your thoughts.
At last, I would like to suggest modifying the moko tool so that
these rules are enforced and the generated JSPs work with the new
compiler. This is for the benefit of any new migration projects.
Thanks a lot.
Weiguo
[email protected]
Choose from 1000s of job listings!
[email protected]
Service.
>
>
>
[Non-text portions of this message have been removed] -
Hi,
I am trying to run a bean through a jsp but its giving error at useBean tag of jsp:
The error is :
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /Quadratic.jsp(7,0) The value for the useBean class attribute com.brainysoftware.Quadratic is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:150)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1227)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3272)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:244)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
My jsp is:
<HTML>
<HEAD>
<TITLE> JSP BEAN Quadratic Example </TITLE>
</HEAD>
<BODY>
<%@ page language="java" %>
<jsp:useBean id="quadratic" scope="session" class="com.brainysoftware.Quadratic" />
<jsp:setProperty name="quadratic" property="ia" param="a" />
<jsp:setProperty name="quadratic" property="ib" param="b" />
<jsp:setProperty name="quadratic" property="ic" param="c" />
X1= <%= quad.getDx1( ) %>
X2= <%= quad.getDx2( ) %>
End of program
</BODY>
</HTML>my bean is:
package com.brainysoftware;
import java.io.*;
class Quadratic{
int ia;
int ib;
int ic;
String dx1;
String dx2;
public int getIa( ) {
return ia;
public void setIa( int ii) {
ia=ii;
public int getIb( ) {
return ib;
public void setIb(int ii) {
ib=ii;
public int getIc( ) {
return ic;
public void setIc(int ii) {
ic=ii;
public String getDx1( ) {
double detA;
double result;
detA= ib*ib -4*ia*ic;
if(detA<0.0)
return "Real Roots not possible";
else {
result= -ib - Math.sqrt(detA/(2 * ia));
Double Dresult=new Double (result);
return Dresult.toString( );
public String getDx2( ) {
double detA;
double result;
detA= ib*ib -4*ia*ic;
if(detA<0.0)
return "Real Roots not possible";
else {
result= -ib + Math.sqrt(detA/(2 * ia));
Double Dresult=new Double (result);
return Dresult.toString( );
my directory structure is given below:
C:\tomcat-5.0.28\jakarta-tomcat-5.0.28\webapps\jsp-examples\WEB-INF\classes\com\
brainysoftware>dir
Volume in drive C has no label.
Volume Serial Number is 4C50-9542
Directory of C:\tomcat-5.0.28\jakarta-tomcat-5.0.28\webapps\jsp-examples\WEB-IN
F\classes\com\brainysoftware
05/22/2005 11:15 PM <DIR> .
05/22/2005 11:15 PM <DIR> ..
05/22/2005 11:18 PM 134 CalculatorBean.java
05/23/2005 12:12 AM 216 Counter.java
05/24/2005 10:48 PM 358 SimpleJavaBean.java
06/14/2005 11:16 PM 1,205 Calculator.java
06/14/2005 11:16 PM 1,323 Calculator.class
06/16/2005 06:44 PM 534 CalculatorBean2.java
06/17/2005 08:53 AM 703 CalculatorBean2.class
06/16/2005 07:00 PM 352 CalculatorBean2.html
06/17/2005 08:51 AM 588 CalculatorBean2.jsp
06/17/2005 04:29 PM 97 UploadBean.java
06/17/2005 04:43 PM 527 FileUploadBean.java
06/17/2005 04:43 PM 834 FileUploadBean.class
06/18/2005 12:21 PM 863 Quadratic.java
06/18/2005 12:21 PM 1,093 Quadratic.class
14 File(s) 8,827 bytes
2 Dir(s) 8,615,821,312 bytes free
C:\tomcat-5.0.28\jakarta-tomcat-5.0.28\webapps\jsp-examples\WEB-INF\classes\com\
brainysoftware>
The above clearly shows the presence of Bean in the reqd directory but still I am getting an error. Can somebody help me:
Zulfi.class QuadraticThe class is not public. It is only visible to other classes in the same package as itself, so the servlet (JSP) trying to instantiate and reference it can't see it.
Make it public. -
Bean problem with creating Adapter Module in NW developer studio
Hi Gurus!
I started to develop an adapter module like described in
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/02706f11-0d01-0010-e5ae-ac25e74c4c81
Unfortunatelly, I'm getting error described on page 9 of the document:
Bean problem: no interface classes found
I cannot resolve this problem. I've tried it also like described in the document, but no success.
Any ideas of what could be wrong?
Thank you!
MarthyMarthy.,.
Close and open project..standard problem ONLY with nwdi..
Regards
Ravi Raman -
Bean problem: No interface classes found
Hi ;
I try to create a adapter . according to tutorial "How To Create Modules for the J2EE Adapter Engine"
https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/f013e82c-e56e-2910-c3ae-c602a67b918e&overridelayout=true
Although I did all steps in it , I copied sda files and extract them then I imported them to the project but I get this error in Netweaver Studio "Bean problem: No interface classes found" while creating ejb file.
the document says you must close and reopen project when you come accross this error but it doesnt work?
Is there any one solve this error?
ps: I use NWDS 7.0.19 , I copied aii_af_lib.sda, aii_af_svc.sda and aii_af_cpa_svc.sda files from PI 7.01Hi Tuncer!
Did you download and "import" these JAR files into your NWDS Build Path - classpath variables:
com.sap.aii.af.lib.mod.jar <bin>/ext/com.sap.aii.af.lib/lib
sap.comtcloggingjavaimpl.jar <bin>/system
com.sap.aii.af.svc_api.jar <bin>/services/com.sap.aii.af.svc/lib
com.sap.aii.af.cpa.svc_api.jar <bin>/services/com.sap.aii.af.cpa.svc/lib
com.sap.aii.af.ms.ifc_api.jar <bin>/interfaces/com.sap.aii.af.ms.ifc/lib
<bin> stands for: /usr/sap/<SID>/<instance-id>/j2ee/cluster/bin in a PI 7.1 system.
Windows -> Preferences -> Build Path -> Classpath Variables -> New ...
Choose a name of your choice and then select the JAR files mentioned above.
This should resolve your problem.
Regards,
Volker -
Hi,
Could someone please help on the above mentioned?
I'm using JDeveloper 3.2.3 for my program development under Chinese windows platform. I have created a simple JSP page, which contains few static Chinese words and I have included the line
<%@ page contentType="text/html;charset=UTF-8"%>
at the top of the page. When I tried to compile it using encoding "UTF8" (under compiler option), the compiler gave me this error:
C:\Program Files\Oracle\JDeveloper 3.2.3\myhtml\Chinese_html\ChineseList.jsp
Error: (0) sun.io.MalformedInputException.
Btw, when I have removed the line <%@ page contentType="text/html;charset=UTF-8"%> from the page and compile, I've got this error:
C:\Program Files\Oracle\JDeveloper 3.2.3\myhtml\Chinese_html\ChineseList.jsp
Warning: (0) ISO-8859-1 character set may not match project compiler setting.
C:\Program Files\Oracle\JDeveloper 3.2.3\myhtml\Chinese_html\ChineseList.java
Error: (0) malformed input character in C:\Program Files\Oracle\JDeveloper 3.2.3\myhtml\Chinese_html\ChineseList.java.
I do appreciate your help on this. Thank you.Here's some info one of the JSP Developers sent me:
1. HELP.....!!!!! Chinese jsp compilation problem.....
The customer is trying to parse a document generated by
Windows's notepad. When saved in UTF-8, the byte
order mark is saved too. We have a know bug that
JSP parser doesn't recognize Byte Order Mark. The
bug is : 1915285.
2. CHINESE CHARACTER ON JSP
. SQLPLUS depends on NLS_LANG setting. If you
check the windows registry, the default of NLS_LANG
depends on the OS. The user environment is Traditional
Chinese, so does NLS_LANG. If we set NLS_LANG
to .UTF8, SQLPLUS dumps the data in UTF8, however,
the command prompt will have problem displaying them.
. For JSP, as mentioned in a previous mail:
<%@ page contentType="text/html;charset=UTF-8" %> for all languages
<%@ page contentType="text/html;charset=GB2312" %> for simplified Chinese
<%@ page contentType="text/html;charset=Big5" %> for traditional Chinese
. When you enter Chinese characters on a browser,
the data is automatically converted to page encoding
(UTF-8 in your case) before sent back to the server.
But your receiving servlet/JSP needs to have request
encoding set correctly.
I'm not sure about the JDeveloper environment,
but here is a simple JSP you may try to verify your
OC4J environment:
a. To set up the schema:
connect scott/tiger
create table tab01(col varchar2(100));
b. Edit the connect string in nls.jsp
c. Run the nls.jsp in oc4j instance.
<!-- nls.jsp -->
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="oracle.jdbc.*,java.sql.*,java.io.*"%>
<HTML>
<HEAD>
<TITLE>Hello</TITLE></HEAD>
<BODY>
<%
request.setCharacterEncoding("UTF-8");
String sampledata="\u7D20";
String paramValue = request.getParameter("myparam");
String connStr = "jdbc:oracle:thin:@dlsun478:5521:j2ee01";
String user = "scott";
String passwd = "tiger";
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection(connStr, user, passwd);
if (paramValue == null || paramValue.length() == 0) { %>
<FORM METHOD="GET">
Please input your name: <INPUT TYPE="TEXT" NAME="myparam"
value="<%=sampledata%>" size=20>
<BR>
<INPUT TYPE="SUBMIT" value="Insert Data">
</FORM>
<%
selectData(conn, out);
else
%>
<H1> Insert Data: <%= paramValue %> </H1>
<br/>
<%
insertData(conn, paramValue);
%>
<a href="nls.jsp">back</a>
<%
%>
</BODY>
</HTML>
<%!
public void insertData(Connection aConn, String myval)
try {
PreparedStatement stmt = aConn.prepareStatement("insert into tab01
values(?)");
stmt.setString(1, myval);
stmt.executeUpdate();
aConn.close();
catch (SQLException e) {
e.printStackTrace();
public void selectData (Connection aConn, JspWriter out)
try {
Statement stmt = aConn.createStatement( );
ResultSet r = stmt.executeQuery("SELECT col FROM tab01");
out.println("<H1>List of Data:</H1>");
while (r.next()) {
out.println(r.getString(1)+"<br/>");
aConn.close();
catch (SQLException e) {
e.printStackTrace();
catch (IOException e) {
e.printStackTrace();
%> -
Redundant information in JSP bean action
Class Person:
public class Person{
private String name;
public void setName(String p){
name=p;
public String getName(){
return name;
}Code in servlet:
public void doPost(HTTPServletRequest request, HTTPServletResponse response) throws IOException,ServletException{
foo.Person p= new foo.Person();
p.setName("New Guy");
request.setAttribute("person",p);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
view.forward(request,response);
}Code in JSP:
<jsp:useBean id="person" class="foo.Person" scope="request">This jsp:useBean tag really is confusing. Why does it need to declare the class="foo.Person"? Why does the JSP need to know that "person" instance is derived from class foo.Person ? (I wonder if I changed this to foo.person --> not Person will result in error). Doesn't the statement request.setAttribute("person",p) from the servlet give enough info already to the JSP? thanksThe "person" in your servlet has nothing to do with your "person" in your JSP bean tag.
-
Hello all!
I am using tomcat as standalone in windows 98 machine.
I have created a virtual directory mydir and is working very well.
I have put my beans(.class file) in mydir\web-inf\jsp\beans directory as given in tomcat faq.But its not working.please help me.
-Govindhai,
create web-inf under ur mydir and use the following way
mydir/web-inf/classes/mydir/<place ur beans here>
reddy -
Javascript array / jsp Bean Collection
How can you fill a javascript array with the values of the collection?
<jsp:useBean id="programs" scope="request" class="java.util.Collection"/>
How can I create this array?
<script language="JavaScript" type="text/javascript">
var programData =
new Array ( new Array "${programs[1].programId}","${programs[1].programName}", "${programs[1].department}"),
new Array "${programs[2].programId}","${programs[2].programName}", "${programs[2].department}"),
</script>I answered myself. If anyone else would like to know how to fill a javascript array with the values of a jsp beans collection.
function collectionToArray()
Array[rows] = [4];
var cnt = 0;
<c:forEach var="sp" items="${programs}">
rows[cnt][0] = ${sp.programId};
rows[cnt][1] = ${sp.programName};
rows[cnt][2] = ${sp.department};
rows[cnt][3] = ${sp.urlLink1};
rows[cnt][4] = ${sp.urlLink2};
cnt++;
</c:forEach>
} -
Please help!
I have a servlet controller, a javabean for the data and a jsp for the view.
I cannot get the jsp using
<jsp:useBean id="pList" class="bbs.PostListCommand" scope="request" />
to access the bean data
However, when I access the bean in this way
<%@ page import="bbs.PostListCommand" %>
// html
<% bbs.PostListCommand postList = null;
synchronized(session){
postList = (bbs.PostListCommand) session.getAttribute("PostListCommand");
if (postList == null){ %>
<H1>Nothing in request scope to retrieve ....</H1>
<P>
<% }
else{ %>
<TABLE border="1">
// etc
� it works
Does anyone know why the <jsp:useBean> tag does not find the bean
I have installed tomcat 4.18 and set the environmental variables etc.
Directory structure is
E:\Tomcat41\webapps\examples\WEB-INF\jsp for jsp�s
E:\Tomcat41\webapps\examples\WEB-INF\classes\bbs for bean and servlets
Thanks in advance for any help.
ChrisGrayMan - Thanks for your help.
Let me explain my problem in more detail ...
Background:
I have some servlet experience, but I am new to jsp - so sorry if this seems trivial to you ...
I have a book called bitter java by bruce tate from manning.com . I am trying to get the chapter 3 examples to work
There are three files
PostListCommand the bean
PostListController the servlet
PostListResults jsp
And a new test file � PostListResults version 2 with scriptlet code to access the bean.
There are a couple of typos in the downloaded source files, but nothing that causes the main problem of not being able to access the bean data.
Program flow
Servlet instantiates new bean
Bean � gets data from db
Servlet passes bean to jsp with a forward
Jsp outputs data
I have put the files in the directories �
E:\Tomcat41\webapps\examples\WEB-INF\jsp for jsp�s
E:\Tomcat41\webapps\examples\WEB-INF\classes\bbs for bean and servlets
The complete source code for each file is given below.
1 I have checked the db access � that�s ok
2 I have also checked reading the bean data back in from the request scope and printing out the results from within the servlet.- ok
3 I can access the data through a scriptlet (PostListResults version 2), but not with the original PostListResults which uses <jsp:useBean>
thanks in advance, chris
PostListController.java
package bbs;
// Imports
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// Import for commands used by this class
import bbs.PostListCommand;
public class PostListController
extends javax.servlet.http.HttpServlet
implements Serializable {
* DoGet
* Pass get requests through to PerformTask
public void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
performTask(request, response);
public void performTask(
HttpServletRequest request,
HttpServletResponse response) {
try {
PostListCommand postList = (bbs.PostListCommand) java.beans.Beans.instantiate(getClass().getClassLoader(),"bbs.PostListCommand");
postList.initialize();
postList.execute();
request.setAttribute("PostListCommand", postList);
ServletContext sc = this.getServletContext();
RequestDispatcher rd =
sc.getRequestDispatcher("/jsp/PostListResults.jsp");
rd.forward(request, response);
} catch (Throwable theException) {
theException.printStackTrace();
PostListCommand.java
package bbs;
import java.io.*;
import java.sql.*;
//import COM.ibm.db2.jdbc.*;
import java.util.*;
* Insert the type's description here.
* Creation date: (07/17/2001 5:07:55 PM)
* @author: Administrator
public class PostListCommand {
// Field indexes for command properties
private static final int SUBJECT_COLUMN = 1;
private static final int AUTHOR_COLUMN = 2;
private static final int BOARD_COLUMN = 3;
protected Vector author = new Vector();
protected Vector subject = new Vector();
protected Vector board = new Vector();
// SQL result set
protected ResultSet result;
protected Connection connection = null;
* execute
* This is the work horse method for the command.
* It will execute the query and get the result set.
public void execute()
throws
java.lang.Exception,
java.io.IOException {
try {
// retrieve data from the database
Statement statement = connection.createStatement();
result =
statement.executeQuery("SELECT subject, author, board from posts");
while (result.next()) {
subject.addElement(result.getString(SUBJECT_COLUMN));
author.addElement(result.getString(AUTHOR_COLUMN));
board.addElement(result.getString(BOARD_COLUMN));
result.close();
statement.close();
} catch (Throwable theException) {
theException.printStackTrace();
* getAuthor
* This method will get the author property.
* Since the SQL statement returns a result set,
* we will index the result.
public String getAuthor(int index)
throws
java.lang.IndexOutOfBoundsException,
java.lang.ArrayIndexOutOfBoundsException {
return (String) author.elementAt(index);
* getBoard
* This method will get the board property.
* Since the SQL statement returns a result set,
* we will index the result.
public String getBoard(int index)
throws
java.lang.IndexOutOfBoundsException,
java.lang.ArrayIndexOutOfBoundsException {
return (String) board.elementAt(index);
* getSubject
* This method will get the subject property.
* Since the SQL statement returns a result set,
* we will index the result.
public String getSubject(int index)
throws
java.lang.IndexOutOfBoundsException,
java.lang.ArrayIndexOutOfBoundsException {
return (String) subject.elementAt(index);
* initialize
* This method will connect to the database.
public void initialize()
throws java.io.IOException {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
// URL is jdbc:db2:dbname
String url = "jdbc:db2:board";
// URL is jdbc:odbc:bitter3board
String url = "jdbc:odbc:bitter3board";
// connect with default id/password
connection = DriverManager.getConnection(url);
} catch (Throwable theException) {
theException.printStackTrace();
* Insert the method's description here.
* Creation date: (07/17/2001 11:38:44 PM)
* @return int
* @exception java.lang.IndexOutOfBoundsException The exception description.
public int getSize() {
return author.size();
PostListResults.jsp
<HTML>
<HEAD>
<TITLE>Message Board Posts</TITLE>
</HEAD>
<BODY BGCOLOR=#C0C0C0>
<H1>All Messages</H1>
<P>
<jsp:useBean id="postList" class="bbs.PostListCommand" scope="request"></jsp:useBean>
<TABLE border="1">
<TR>
<TD>Subject</TD>
<TD>Author</TD>
<TD>Board</TD>
</TR>
<% for (int i=0; i < postList.getSize(); _i++) { %>
<TR> <TD><%=postList.getSubject(_i) %></TD>
<TD><%=postList.getAuthor(_i) %></TD>
<TD><%=postList.getBoard(_i) %></TD>
</TR>
<% } %>
</TABLE>
<P>
</BODY>
</HTML>
PostListResults.jsp version 2 � with scriplet code instead of useBean
<HTML>
<%@ page import="bbs.PostListCommand" %>
<!-- This file was generated by the chris -->
<HEAD>
<TITLE>Message Board Posts</TITLE>
</HEAD>
<BODY BGCOLOR=#C0C0C0>
<% bbs.PostListCommand postList = null;
synchronized(request){
postList = (bbs.PostListCommand) request.getAttribute("PostListCommand");
if (postList == null){ %>
<H1>Nothing in request scope to retrieve ....</H1>
<P>
<% }
else{ %>
<TABLE border="1">
<TR>
<TD>Subject</TD>
<TD>Author</TD>
<TD>Board</TD>
</TR>
<% for (int i=0; i < postList.getSize(); _i++) { %>
<TR> <TD><%=postList.getSubject(_i) %></TD>
<TD><%=postList.getAuthor(_i) %></TD>
<TD><%=postList.getBoard(_i) %></TD>
</TR>
<% } %>
</TABLE>
<% }
}%>
<P>
goodnight
</BODY>
</HTML>
Maybe you are looking for
-
Error while compiling java file
Hi, im newby in java, i was trying to compile java files, and after that i will use it in JSP as javabean. I have 2 files already, the first file is a connection code, and its compiled successfully, it looks like this i named this as ConnectionBean.j
-
Using soundtrack from another video?
Newbie question - if I upload 2 videos from my iPhone, can I take the sound from video 1 and use it as the soundtrack for video 2? If so, how? Thanks! Adam
-
How to connect ipad to internet
method to be best used to put ipad on internet
-
How to create updateable resultset using sql with "order by"
Dear all, I'm using the Derby database to hold a table of stock prices. After the table is populated, I want to do some calculations and store the result in a column. I get the resultset using the following code Statement stmt = con.createStatement(R
-
Purchase code number doesnt seem to work, it says invalid
purchase code number doesnt seem to work, it says invalid