Как получить текущий рабочий каталог в GWT Java

Я использую Java 1.6 с GWT 2.4.

Я очень хорошо знаю, что мы можем получить текущий рабочий каталог в Java, используя следующий код:

System.getProperty("user.dir");

Но GWT не позволит мне использовать класс System на стороне клиента.

Итак, мой вопрос: есть ли способ получить текущий путь к рабочей директории в GWT?

4 ответа

  1. Вам нужно будет использовать вызов RPC или запрос RequestBuilder.
  2. Передайте параметр имя изображения на сервер
  3. В классе обслуживания на стороне сервера рассчитайте системный путь и верните обратно информацию о пути.

GWT компилируется в javascript и выполняется в браузере, обменивающемся данными с сервером через http, и, следовательно, не может выполнять Java-код на стороне сервера, например System.getProperty("user.dir");,

Любое такое требование должно быть выполнено посредством асинхронного вызова к серверу.

Примечание. По-прежнему не имеет смысла отображать путь к файловой системе для пользователя, если вы не пишете системный обозреватель с веб-интерфейсом (может вызвать некоторые связанные с безопасностью запросы!!!)

System.getProperty("user.dir") хорошо работал для меня в GWT 2.6.1, как при локальном запуске, так и при развертывании в Google App Engine (где он возвратил, например, /base/data/home/apps/s~rhezivt28/1.379778380561169345).

Вы можете написать новую услугу (в вашем RemoteService/RemoteServiceImpl) который в основном получит текущий рабочий каталог, используя System.getProperty("user.dir");?

Это обходной путь, потому что GWT (клиентский) код не имеет замены javascript для java.lang.System класс ИЛИ я думаю, что они не имеют преимуществ читать свойства системы (так как они запускаются в браузере)

Current Directory in GWT.

все ваши сценарии Java на стороне клиента, так что, не имеет значения current directory,

System.getProperty("user.dir");

По соображениям безопасности javascript не имеет доступа к системным дискам, чтобы избежать кибератак

http://en.wikipedia.org/wiki/JavaScript

см. Открытие файла в локальной файловой системе в JavaScript

Чтобы получить файл, вам нужно сделать вызов на сервер.

Другие вопросы по тегам