Иметь переменную экземпляра, которая содержит свойство name, и заполнять его во время создания объекта. Переопределите метод "toString ()" для отображения имени -
@Override
Public String toString(){
return name;
}
Player John = new Player();
System.out.println(John);
В свете Вашего последнего редактирования, чтобы заставить Ваш файл CSV инициировать загрузку файла (вместо того, чтобы представить в браузере), нет никакой потребности в Ajax.
Вместо этого решение состоит в том, чтобы иметь Вашу систему бэкенда, добавляет этот HTTP-заголовок, когда файл CSV требуют:
Content-disposition: attachment; filename=<your_filename.csv>;
Ваша реализация здесь зависит от системы бэкенда, которую Вы используете. При использовании направляющих (как имя пользователя предполагает), вот запуск:
filename = 'your_filename.csv'
headers['Content-Type'] = 'text/plain'
headers['Content-Disposition'] = "attachment; filename=\"#{filename}\""
render :layout => false
Загрузка его не является проблемой; можно загрузить любые данные, которые Вы любите через XmlHttpRequest. Твердая часть анализирует его. Существует несколько способов проанализировать его от regexs для строкового представления индексации.
Можно использовать "Ajax" для загрузки чего-либо.. Некоторые люди сказали бы, что Вы не должны называть это Ajax в этом случае, так как тот термин строго посвящен загрузке XML. Но действительно это - просто механизм для получения данных в клиент w/o перезагрузка страницы. При загрузке HTML, это назвали бы AHAH для CSV, я предполагаю, что Вы назвали бы это AHAC или AJAC?..
Это известное ограничение запросов Ajax, вам нужно будет использовать JS, например:
window.location='download-csv.rb';
Вместо использования запроса Ajax. Другой способ - изменить расположение скрытого iframe, но у него есть свои плюсы и минусы.
Вы никогда не получите Ajax-запрос для отображения диалогового окна «Сохранение файла», независимо от того, какие HTTP-заголовки вы отправляете.