Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Javascript и обьекты Java 
:(
    Опции темы
oson
Дата 18.8.2008, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 3.3.2004
Где: Севастополь

Репутация: нет
Всего: 1



Пытаюсь прикрутить Ajax к Struts.
Использую DWR.
Вызов метода через DWR в самом ActionForm проходит нормально.
Но вот вырисовать результат без перезагрузки никак не получается.
В документации DWR нет такой возможности чтоб просто обозначить часть страницы каким-то <div id="smth"... и асинхронно перезагрузить ее. Или есть?
Предлагается примерно такой вариант
Код



public class Person
{
    private int id;
    private String name;
    private String address;
    private float salary;

    // Getters, setters, equals and toString omitted
}

 public class People {
    // Java класс возвращает Set объектов
    public Set getAllPeople() {
        return people;
    }
//где каждый обьект в Set people является обьектом класса Person

 //Javascript их читает
function fillTable() {
  People.getAllPeople(function(people) {
  var person, id;
  for (var i = 0; i < people.length; i++) {
      person = people[i];
      id = person.id;
      //и достает поля этого Java обьекта прямо в Javascripte через вызовы типа person.name
      dwr.util.setValue("tableName" + id, person.name);
      dwr.util.setValue("tableSalary" + id, person.salary);
      dwr.util.setValue("tableAddress" + id, person.address);
}
  });



Когда я пытаюсь делать похожее - то Javascript говорит 'people has no properties'
То есть этот Javascript обьект не имеет никаких полей name, salary и тд и то есть совсем не объект?
В чем же тут проблема?
PM MAIL   Вверх
check
Дата 18.8.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



У меня в свое время тоже не получилось обратиться через DWR к полям бина как к свойствам JavaScript объекта,  хотя в документации и заявлена такая возможность.  Пришлось ограничиться передачей примитивов.

 А класс, в котором находится метод getAllPeople(),  это не struts-экшен, конечно?

PM MAIL   Вверх
oson
Дата 18.8.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 3.3.2004
Где: Севастополь

Репутация: нет
Всего: 1



getAllPeople() он вызывает из ActionForm

Интересно, а есть возможность просто проапдейтить часть страницы?
То есть через DWR вызвать метод например delete(Person p)
а потом на странице например сделать так

Код

<div id="idForUpdate">
 <logic:iterate myForm.people>
  //показать лист этих person
</logic:iterate>
</id>

и как то проапдейтить асинхронно только вот эту часть заключенную в div?
PM MAIL   Вверх
check
Дата 18.8.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



"Асинхронно проапдейтить" значит выполнить действие на сервере, а на клиенте обновить эту часть страницы средствами JavaScript.
А это 
Код

 <logic:iterate myForm.people>
  //показать лист этих person
</logic:iterate>
делается на сервере и требует перезагрузки страницы.


Чтобы средствами JS найти строку которую ты удаляешь на сервере и что-то с ней сделать у неё на клиенте должен быть идентификатор.
Что-то такое:   <tr id="ID_записи_в_БД">.....</tr>


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1079 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.