Использование вектора и Hashtable в качестве бона для DWR

StackOverflow https://stackoverflow.com/questions/4069541

  •  28-09-2019
  •  | 
  •  

Вопрос


Я хочу написать функцию DWR, которая готовит вектору Hashtable и возвращает к JavaScript и там в JavaScript, мне нужно повторять вектор и распечатать содержимое hashtable.

Моя функция DWR:

public Vector getEmployeeData() {
   Vector employeeData = new Vector();
   // some other content to prepare vector

   return employeeData;
}

И я настроил DWR-сервлет в Web.xml правильно и содержимое в DWR.XML:

<create creator="new" javascript="Employee" scope="script">
  <param name="class" value="com.test.DWREmployeeManager"/>
</create>
<convert match="java.util.Hashtable" converter="bean"/>
<convert match="java.util.Vector" converter="bean"/>  

Но моя проблема заключается в том, что я назвал этот метод DWR от Javascrit, я получаю пустую массив в результате функции обратной связи DWR.

Может кто-нибудь предложить решение этой проблемы ..

Это было полезно?

Решение 2

Вместо того, чтобы использовать два тега,

<convert match="java.util.Hashtable" converter="bean"/>
<convert match="java.util.Vector" converter="bean"/>  

Я использовал приведенную ниже тег:

<convert converter="collection" match="java.util.Collection"/>

Теперь его работает нормально.

Спасибо

Другие советы

Я подозреваю, что ваша проблема здесь заключается в том, что вы говорите DWR для преобразования объектов коллекции в качестве бобов. Вам не нужно делать это, и вы не хотите - они не бобы, они коллекции.

Видеть:http://directwebremoTing.org/dwr/server/dwrxml/Conververs/collection.html.

Более того, как в моем комментариев выше, вы, вероятно, хотите использовать список (массив или связанный), а hashmap. Если вы используете Java 5 или новее, вы, вероятно, должны добавлять типовые объявления.

Вот что я предлагаю: (вы специально не показать свой код HASHTABLE, поэтому я просто предполагаю, что на карте отображается какая-то строка.)

public List<Map<String,EmployeeData>> getEmployeeData() {
    List<Map<String,EmployeeData>> employeeData = new ArrayList<Map<String,EmployeeData>>();
    // some other content to prepare list

    return employeeData;
}

В DWR.xml вам нужно удалить два конвертерных линий и добавить один:

<convert match="com.test.EmployeeData" converter="bean"/>

(И убедитесь, что есть правильные методы Gotter и Setter для этого компонента).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top