Yes and no: I am suggesting that you use LiveConnect, but you need not
require users to access those objects through the "java.foo.bar"
syntax. Instead, you can create the Java objects you want, call
Context.javaToJS on them, then assign them to properties of your scope
or of other objects that are accessible to your JavaScript scripts.

You can delete the "java", "com", etc. global properties so that
untrusted scripts can't access java.io.File, for example.

--N

On Feb 23, 9:25 pm, "David Parks" <[email protected]> wrote:
> Ah, you mentioned that before but I don't think I understood. I'm not sure I
> do yet.
>
> Are you suggesting that I use the "Live Connect" feature in which I would
> use the 'java' keyword to access java functions directly from JS?
>
> If that's the case I have two concerns that have thus far held me back from
> even enabling that feature.
>
> 1  -  The scripts are untrusted, and live connect only seems to be safe if
> the scripts are trusted.
>
> 2  -  I am presenting an API to the user (think of it like a web browsers
> DOM), forcing the users to learn about using a nonstandard keyword like
> 'java' would be significantly less than ideal for my use.
>
> Thanks Norris!
> David
>
> -----Original Message-----
> From:
>
> dev-tech-js-engine-rhino-bounces+davidparks21=yahoo....@lists.mozilla.org
> [mailto:dev-tech-js-engine-rhino-bounces+davidparks21=yahoo....@lists.mozill
> a.org] On Behalf Of Norris Boyd
> Sent: Monday, February 23, 2009 2:00 PM
> To: [email protected]
> Subject: Re: Not doing something right
>
> On Feb 23, 11:15 am, "David Parks" <[email protected]> wrote:
> > Thanks for the reply. I understand that the constructor is necessary for
> the
> > JS environment to create the object. But I already have the object created
> > and just want to add it to the JS environment. Either by adding a new
> > variable that references it or by returning a reference to it from a
> native
> > function call.
>
> Can you just use a plain Java object? Rhino will do the "right" thing
> and allow your JavaScript code to access the Java object. So for your
> example above, the class would simply be
>
> public class ExampleJSClass {
>   public void f1() { }
> }
>
> --N
>
> > Thanks!
> > Dave
>
> > -----Original Message-----
> > From:
>
> > dev-tech-js-engine-rhino-bounces+davidparks21=yahoo....@lists.mozilla.org
>
> [mailto:dev-tech-js-engine-rhino-bounces+davidparks21=yahoo....@lists.mozill
> > a.org] On Behalf Of Mike Tardif
> > Sent: Monday, February 23, 2009 8:42 AM
> > To: [email protected]
> > Subject: Re: Not doing something right
>
> > On Feb 20, 1:34 pm, "David Parks" <[email protected]> wrote:
> > > I'm either doing something wrong or don't understand the functionality
> of
> > > Rhino here.
>
> > > I am creating an object in Java and trying to pass it to the JS
> > environment
> > > via another JS function. I set up this simplified example to try to
> > > understand the functionality:
>
> > > Scriptable jsObject = Context.toObject(new ExampleJSClass(),
> > instanceScope);
> > > instanceScope.put("obj0", instanceScope, jsObject);
> > > cx.evaluateString(instanceScope, "obj0.fun1();", "test", 1, null);
>
> > >     static class ExampleJSClass extends ScriptableObject {
> > >         public void jsConstructor(){  }
> > >         public String getClassName(){ return "ExampleJSClass"; }
> > >         public void jsFunction_fun1(){  }
> > >     }
>
> > > Can someone help me understand what I need to do to make this work, or
> > what
> > > I'm doing wrong? This example throws the exception:
> > > org.mozilla.javascript.EcmaError: TypeError: Cannot find default value
> for
> > > object. (test#1)
>
> > It is my understanding that you need a ctor -- see below
>
> > static class ExampleJSClass extends ScriptableObject {
> >      public void jsConstructor(){  }
> >      public void ExampleJSClass() { } // must match the signature of
> > your jfConstructor
> >      public String getClassName(){ return "ExampleJSClass"; }
> >      public void jsFunction_fun1(){  }
> > }
>
> > Cheers, Mike
> > _______________________________________________
> > dev-tech-js-engine-rhino mailing list
>
> [email protected]https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino
>
> _______________________________________________
> dev-tech-js-engine-rhino mailing list
> [email protected]https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino

_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino

Reply via email to