Osadzam niektóre javascript w aplikacji Java za pomocą Rhino. Podążam za przykładem na stronie Rhino, wykonuję skrypt wywołując metodę evaluateString Context i przekazując aktualny skrypt jako ciąg.Rhino, dodawanie kodu z wielu plików javascript
Mam cały pakiet istniejącego kodu javascript, z którego chciałbym skorzystać. Nie chcę łączyć tego wszystkiego w ogromny łańcuch i przekazywać go do ocenyString. Wolałbym ładować kod w taki sposób, żebym mógł go wywołać z kodu, który przekazuję do evaluationString (coś w rodzaju metody AddCode działa w skrypcie Microsoftu). Chciałbym dodać kod jak mogę obecnie dodawać zmienne za pomocą metody ScriptableObject.putProperty.
Czy istnieje sposób, aby to zrobić? Czy ktoś może podać fragment kodu lub link do dokumentacji? Dzięki!
Umieść cały kod javascript w jednym pliku. Odczytaj plik do 'StringWriter' i użyj jego metody' toString'. Teraz użyj 'evaluateString', aby przeanalizować cały kod javascript i zwróć obiekt' Scriptable'. Następnie możesz po prostu użyć metody get (String names, Scriptable jsObject) Scriptables, aby uzyskać dostęp do dowolnego obiektu w zakresie. – FK82
Tylko uwaga: jeśli chcesz włączyć kontynuację-mijanie-wzorca (tak jak to określiłeś), będziesz musiał mieć wszystkie odpowiednie funkcje w zakresie i zadeklarować ten zakres w 'Function.call (kontekst skryptowalny, zakres skryptów, Scriptable toObject, Object [] args) '. Dlatego nie widzę korzyści z dzielenia kodu na fragmenty. – FK82