Link to home
Start Free TrialLog in
Avatar of Amalanleon
Amalanleon

asked on

calling java function from javascript without applet

want to call java function from javascript which are in the same jsp page.
see the example below.

<%@ page import="com.dcx.mkt.webdaw.*,java.util.*" %>
<script>
function test1()
{
 alert("test");
 java.select();
 alert("test1");
}
</script>
<input type=text value="5" onchange="test1()">
<%!
protected void select()
{
System.out.println("testing java function");
}
%>
ASKER CERTIFIED SOLUTION
Avatar of bobbit31
bobbit31
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of girionis
 You can call java methods from JavaScript but not in Servlets/JSP pages but only in Applets. See the following links:

http://developer.netscape.com/docs/examples/livewire/liveconnect_js_java.html
http://www.rgagnon.com/javadetails/java-0170.html
http://www.apl.jhu.edu/~hall/java/Java-from-JavaScript.html

  Hope it helps :-)
Easiest would be to convert your Java function to a Javascript function.
Avatar of Amalanleon
Amalanleon

ASKER

Hi

I got  five Combobox, depeding upon the first Combobox selected value the remaining value will be filled. I can't hold all the data in my JSP because I got nearly 5000 records for each Combobox. I need a java function to call in my javascript OnChange event.

Amal
Then you'll need to use an applet, or invoke a new jsp page. The jsp and javascript are executed on different machines and cannot interact directly.
Also sounds like your applet is going to have to make a call to the server to get the values.
hi
there
simplest way is to get one record at a time
so that ur page displays the data for all comboboxes in 1 go
when selection is made onChange event is fired which will submit the page to servlet (typical MVC approach)servlet invokes the java bean that fetches the data for the required field
post it back to your JSP

cheers
RJ

If you could get by with supporting IE only, you might look into XMLHTTP. You could then use javascript to make a request for new content without leaving your current location.

-corey
Use a frame of size 0 to make a server call that retrieves the combo boy values of the second combo box. The HTTP result then returns a page containing a page with the values and a javascript function that fills the combo box in the other frame. The user won't see it because the frame is not visible.

I implemented this for a car seraching engine, where you first select the car's brand and than in a second combo can choose the name of the car, where the names are retrieved from a DB...

Mirko
Amalanleon
You can call java from javascript using LiveScript.
Use <APPLET TAG> or <OPTION TAG> With  MAYSCRIPT as option. Then you can execute Javascript function in java or java in javascript.
The function in java should be public. And u need to be using arrays as ur input and output to the function. U need to use JSObject for this.
The classes are available in your netscape in java40.jar. Put this in path or archive in your applet.

Thanks
Shyam
"calling java function from javascript WITHOUT applet"
Core
You should have applet. Without it no way you can do it.

Shyam
The question asks how to do it WITHOUT an applet.
Which infers they know how to do it WITH an applet.

:-)
No comment has been added lately, so it's time to clean up this TA.

I will leave a recommendation in the Cleanup topic area that this question is:

- To be PAQ'ed and points NOT refunded

Please leave any comments here within the
next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER !

girionis
Cleanup Volunteer
 Sorry, wrong suggestion (copied/pasted the wrong comment :-)), my suggestions actually is

- points to bobbit31