Я пытаюсь создать пример кода для моей дальнейшей работы. Я использую gwt vanillia и новичок в gwt. Моя цель состоит в том, чтобы заполнить некоторые текстовые поля и сетку. для заполнения текстовых полей из базы данных, нет проблем с вызовом RPC. Но я не мог заполнить сетку данных с помощью вызова RPC. Я использовал учебник Бастиана Тенбергена
для заполнения некоторых текстовых полей. Но когда я попытался заполнить сетку асинхронным обратным вызовом, используя ArrayList, код не удался. Я знаю, что ArrayList также сериализуем, но я не могу решить проблему.
Любой совет приветствуется.
Вот код для моего квеста.
В пакете сервера: SqlDbConnection.java
public ArrayList<hastaGrid> callGrid(String something){
ArrayList<hastaGrid> list = new ArrayList<hastaGrid>();
hastagrid hastaGrid = null;
try {
Statement st = conn.createStatement();
ResultSet result = st.executeQuery("select name from TEST where name = '"+ something +"'");
while(result.next()) {
hastagrid = new hastaGrid(result.getString(1), result.getString(2),result.getNString(2),result.getString(3));
list.add(hastaGrid);
System.out.println("result: " +hastagrid.getLogin().toString()+" " + hastagrid.getPassword() +" "+ hastagrid.getName() +" " + hastagrid.getSurname());
}
result.close();
st.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
В пакете клиента: hastaGrid.java // у класса также есть методы getter и setter.
public class hastaGrid implements IsSerializable {
private String name;
private String surname;
private String login;
private String password;
public hastaGrid(String name,String surname, String login, String password){
this.setName(name);
this.setSurname(surname);
this.setLogin(login);
this.setPassword(password);
}}
В пакете клиента: DBConnection.java
public interface DBConnection extends RemoteService {
public ArrayList<hastaGrid> callGrid(String name); }
В пакете клиента: DBConnectionAsync.java
public interface DBConnectionAsync {
public void callGrid(String name, AsyncCallback<ArrayList<hastaGrid>> callback); }
В пакете клиента: userDetail.java
onModuleLoad () {
AsyncCallback> callback = new AuthenticationHandler1 ();
rpc.gridGetir ( "Джон", обратный вызов);
}
private class AuthenticationHandler<T> implements AsyncCallback<ArrayList<hastaGrid>> {
public void onFailure(Throwable ex) {
RootPanel.get().add(new HTML("RPC call failed"));
}
public void onSuccess(ArrayList<hastaGrid> result) {
result.get(0).getName(); } } // I just want to reach some result here when debugging.
Я читаю много страниц в Интернете, но не могу найти конкретного решения. Я могу ошибаться. Спасибо за ответы.