[java] Client-side (in browser) beans?

Pagina: 1
Acties:

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Ik vroeg me af of er een mogelijkheid is om java beans (de gewone, geen EJB) in de web browser (dus client side) net zo te gebruiken als je ze server-side gebruikt.

Namelijk, gewoon een aanroep van de bean die dan (bv) text uitspuugt wat op elke plaats in je HTML document kan komen. Eigenlijk dus net zoals je javascript gebruikt, alleen nu dan met beans.

De reden dat ik dit vraag is omdat ik voor een web applicatie niet de ene helft van de functionaliteit in java wil coden en de andere helft in javascript. Als het allemaal java is kan ik veel makkelijker later wat heen en weer schuiven tussen client en server.

Een Applet is geen oplossing omdat die geen tekst kan terug geven die ik bv in een tabel stop ofzo.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


Verwijderd

Nee dit is niet mogelijk.
Je moet voor client side scripten echt voor javascript gaan.

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Ik vraag me af of je gelijk hebt. Ik lees net namelijk een stukje over Javascript beans en die kunnen wel degelijk client-side javabeans aanroepen.

Zie http://infodoc.unicaen.fr/docs/Java/cdk/resources/faq.html

Ik moet nog op zoek naar voorbeelden, maar het 'lijkt' erop dat ik een dunne javascript wrapper om een javabean kan zetten om ze toch client-side te gebruiken. Ik hoop dat dit mogelijk is...

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Na wat meer zoeken schijnt het dat vroeger (?) de volgende methode ook mogelijk is geweest:

Een Applet of bean aanmaken met de applet of object tag.
Hierdan heel simpelweg naar verwijzen door document.ID.functie() te gebruiken, waarbij ID dan de naam is die je gaf in de applet of objecttag.

Een van de vele voorbeelden geef ik hieronder. Het werkt op geen enkele browser (ie 5.2, safari 1 en mozilla 7 geprobeerd). De code hieronder gebruikt een eigen class, voorbeelden waar je zelf een class maakt werken ook niet.

Voorbeeld:

<OBJECT ID="aTextArea"
CLASSID="javabean:java.awt.TextArea"
WIDTH="200" HEIGHT="60"
>
<PARAM NAME="Rows" VALUE="5">
<PARAM NAME="Columns" VALUE="20">
<PARAM NAME="Text" VALUE="All for Kibology. Kibology for all.">
</OBJECT>
<BR>
<FORM ACTION="whatever.html"
ONSUBMIT="this.aTextArea.value = document.aTextArea.getText();">
<INPUT TYPE="hidden" NAME="aTextArea">
<INPUT TYPE="submit">
</FORM>
<FORM NAME="gui">
<INPUT TYPE="BUTTON" VALUE="get caret"
ONCLICK="this.form.caret.value =
document.aTextArea.getCaretPosition();"
>
<INPUT TYPE="text" NAME="caret" SIZE="4">
<INPUT TYPE="button" VALUE="set caret"

ONCLICK="document.aTextArea.setCaretPosition(parseInt(this.form.caret.value,
10));"
>
<BR>
<INPUT TYPE="text" NAME="aText" VALUE="Scriptology for all. " SIZE="80">
<INPUT TYPE="button" VALUE="insert at caret"
ONCLICK="document.aTextArea.insert(this.form.aText.value,
document.aTextArea.getCaretPosition());"
>
</FORM>
The first FORM shows how to submit a FORM with the content of the
java.awt.TextArea, the second FORM demonstrates setting and getting the
caret (cursor) in the textarea.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Hieronder nog een voorbeeld uit een niews groep. Ik probeer dit allemaal maar het werkt gewoon niet. Toch schrijven al die mensen dat het wel werkt. Het lijkt me toch stug dat ze allemaal zitten te fantaseren. Het enigste wat opvalt is dat het allemaal behoorlijk oude postings zijn (nix nieuwer als 2000).

Het voorbeeld hier benenden doet echt precies wat ik zoek. Alleen... het werkt dus niet.

==============================

I sent this example while testing and I was told it did not work.
To make it work these changes need to be made:

Remove this line (Extra Microsoft stuff):
<PARAM NAME="__CODECLASS" VALUE="Profile">

Use this for .JAR and .ZIP files:
<PARAM NAME="ARCHIVE" VALUE="Profile.jar">

and this for .CAB files:
<PARAM NAME="CABBASE" VALUE="Profile.cab">


Janice E Brown <janiceebrown@home.com> wrote in message
news:Jjko3.176$J27.10080@news1.rdc1.on.wave.home.com...
> I would like to be able to create many Java Objects from JavaScript code.
> I currently do this:
>
> ====html=======================
> <HTML>
> <HEAD>
> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
> <TITLE>Test Profile</TITLE>
> </HEAD>
> <BODY>
> <OBJECT name=Profile classid="java:com.pospro.util.Profile" height=0 width=0
> VIEWASTEXT ...>
> <PARAM NAME="__CODECLASS" VALUE="Profile">
> <PARAM NAME="CABBASE" VALUE="Profile.jar">
> </OBJECT>
> <SCRIPT LANGUAGE=JavaScript>
> <!--
> var p = Profile.create(); // return (new Profile());
> p.setSample("XXX");
> document.write(p.getSample()); // this writes "XXX"
> document.write(Profile.getSample()); // this writes "SAMPLE"
> // -->
> </SCRIPT>
> </BODY>
> </HTML>
> ====java================
> package com.pospro.util;
>
> public class Profile
> {
> private String sample = "Sample";
>
> public Profile create()
> {
> return new Profile();
> }
>
> public String getSample()
> {
> return sample;
> }
>
> public void setSample(String newSample)
> {
> sample = newSample;
> }
>
> public Profile()
> {
> }
> }
> =======================
>
> This works but there are now two objects, the original one created
> by the <OBJECT> tag and the new "var p".

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • djlinsen
  • Registratie: September 2002
  • Laatst online: 14:57

djlinsen

Well suffer my pretty warriors

hmm, maar waarom wil je bepaalde functies client side in java afhandelen, dan kan je ze toch net zo goed serverside afhandelen of zie ik dat verkeerd? Het enige voordeel wat ik kan bedenken is dat je code mischien beter kunt beheren. Javascript is nou niet bepaald overzichtelijk in grote html bestanden. Maar dan nog, kan je de zelfde functionaliteit van javascript wel in java aan?

Are you following me, Are you following me?


  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Wel interesant die link, maar een beetje andersom eigenlijk. Hoewel ik voorbeeld niet helemaal snap, gaat het hier om applets die script objecten aansturen. Wat ik zoek is eigenlijk dat ik gewoon via javascript een string (bv) in een javabean zet en via een andere functie weer wat eruit haal.

Volgens jou link zou dat andersom al standaard kunnen met applets, namelijk
[mayscript] is not necessary for the page objects to control the applet.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Helaas, ik heb het met MAYSCRIPT geprobeerd, eigenlijk precies volgens de voorbeelden maar het werkt gewoon weer niet. Doe ik soms iets fout?
Hier is het voorbeeld:

----------javatest.html---------------------

<html> <body>

<applet name=test code=javatest.class height=0 width=0 MAYSCRIPT> </applet>

<SCRIPT LANGUAGE=JavaScript>
<!--
document.write( document.test.produce() );
// -->
</SCRIPT>

</body> </html>

-----javatest.java----------------------------

import java.applet.*;

public class javatest extends Applet {

public String produce() {
return "test";
}

}

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
djlinsen schreef op 23 november 2003 @ 21:59:
hmm, maar waarom wil je bepaalde functies client side in java afhandelen, dan kan je ze toch net zo goed serverside afhandelen of zie ik dat verkeerd?
Het kan inderdaad serverside. Het punt is dat veel functionaliteit helemaal niet serverside hoeft in principe. Door die dingen dan client side af te handelen wil ik de server ontlasten en alleen gebruiken voor dingen die echt via de server moeten, zoals dingen uit de database halen en filteren.
Javascript is nou niet bepaald overzichtelijk in grote html bestanden.
Inderdaad. Het enige wat ik de html wil zien is een paar calls naar methods in mijn classes en hier en daar minimaal gebruik van javascript.
Maar dan nog, kan je de zelfde functionaliteit van javascript wel in java aan?
Ik denk het wel. Het koppelen van HTML aan de classes gaat natuurlijk wel altijd via wat javascript.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Zie ook:

http://www.dougclancey.com/java/applet-javascript/index.jsp

Het zoveelste voorbeeld, deze compleet met een voorbeeld pagina waar je het zelf kunt uitproberen. Ligt het nou aan mijn computer????? Wat het werkt gewoon niet bij mij.... 8)7 :? 8)7 :?

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Ligt echt aan je 'computer'.
Want dat voorbeeld werkt gewoon.

kijk eens in de java en/of javascript console, wellicht kom je er achter wat het probleem is

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 14-05 15:52
Ik denk dat het aan de security settings van je browser ligt. kijk een naar de volgende settings (IE):
Uitvoeren van scripts
  • Java-applets uitvoeren in scripts toestaan/vragen/nooit
  • plakbewerkingen via scripts toestaan toestaan/vragen/nooit
  • actief uitvoeren van scripts toestaan/vragen/nooit
Al de setting moeten minimaal op 'vragen' staan of anders op 'toestaan'.

Verwijderd

Bij mij werkt het ook. Wat mij wel opvalt is dat flowerp een MAC heeft.

Zou het mischien kunnen zijn dat het mechanisme niet op de mac werkt? Het lijkt me wel een beetje toevallig dat bij alle drie die browsers de veiligheids instellingen het niet toelaten.

Of staan Mac browsers soms default stricter ingesteld? (omdat de fabrikanten denken dat Maccers dommer zijn? -Dat- lijkt me pas dom...)

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Verwijderd schreef op 26 november 2003 @ 20:20:
Of staan Mac browsers soms default stricter ingesteld? (omdat de fabrikanten denken dat Maccers dommer zijn? -Dat- lijkt me pas dom...)
Bij Safari heb ik alleen een optie op javascript (en java) in zijn geheel aan en uit te zetten. Bij mij staan ze gewoon beide aan. Een optie die expliciet zegt dat java scriptable is door javascript heb ik helemaal niet in Safari...

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:55

crisp

Devver

Pixelated

Safari is in mijn ogen ook nog niet een echt volwassen browser, hoewel ik moet zeggen dat het wel heel veelbelovend is en al zeker een hele verbetering tov IE op de Mac.
Ik test mijn DHTML applicaties nog wel eens in Konqueror en loop daar vaak tegen de meest vreemde dingen aan...

Intentionally left blank


Verwijderd

crisp schreef op 07 december 2003 @ 13:20:
Safari is in mijn ogen ook nog niet een echt volwassen browser, hoewel ik moet zeggen dat het wel heel veelbelovend is en al zeker een hele verbetering tov IE op de Mac.
Ik test mijn DHTML applicaties nog wel eens in Konqueror en loop daar vaak tegen de meest vreemde dingen aan...
Wat ook vreemd is, op geen enkele Mac browser werkt javascript print.

Zelfs niet met IE, terwijl de Windows versie dat wel kan. Waarschijnlijk is printen op de mac zo moeilijk, dat het geen enkele ontwikkelaar van javascript engines is gelukt een dergelijke functionaliteit te implementeren. Zelfs Apple lukt het blijkbaar niet... en dat zegt toch heel veel. Je zou zeggen dat ze hun eigen print systeem/api toch wel kennen ???

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Printen op de mac kan inderdaad niet vanuit de browser. Het lijkt me vreemd dat dat een technisch probleem is. Wat me eerder lijkt is dat mac gebruikers niet veel printen omdat ze gewoon geen geld meer over hebben na de aanschaf van hun dure machine.

Dat was met mij tenminste wel zo. Als er op de mac een web app gaat printen dan richt dat relatief meer schade aan (voor de portemonee van de gebruiker) dan als dat op Windows gebeurt. Die lui hebben met al die *gratiz* software en goedkope hardware toch nog geld genoeg over...

Wel vreemd dat de verschillende browser fabrikanten voor de Mac zich hier unaniem in verenigd hebben ( fabrikanen van mozilla, safari, en ie)...

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.

Pagina: 1