GWT Строительные леса - PullRequest
       5

GWT Строительные леса

6 голосов
/ 04 августа 2009

Есть ли что-то похожее на Ruby on Rails Scaffolding для создания GWT CRUD?

Ответы [ 4 ]

3 голосов
/ 25 июня 2010

Spring Roo было объявлено на Google I / O 2010. Это может быть то, что вы ищете.

1 голос
/ 07 июля 2010

MyEclipse для Spring 8.6 M2 был только что выпущен, и теперь у него есть строительные леса GWT.

Вы можете скачать бесплатную 30-дневную пробную версию здесь .

0 голосов
/ 15 июня 2015

GWT использует другую парадигму по сравнению со всеми учебными CRUD-структурами, которые решают очень мало IMO. Думайте об этом как о старом добром Свинге. Связь уже встроена (GWT-RPC). Единственный способ улучшить его - ни одна из этих инфраструктур CRUD не предлагает - это создать несколько шаблонов (ваш собственный набор более богатых виджетов и т. Д.), Который работает с некоторыми унифицированными данными. И, конечно же, соответствующий код на сервере. Таким образом, вы можете использовать общие методы GWT-RPC и общие структуры данных для передачи данных, а не миллионы методов во всех этих интерфейсах. В противном случае GWT-RPC так же хорош, как и любая универсальная «среда» CRUD, в которой эти «миллионы» методов находятся на «фасаде сервиса».

Одна вещь, которую вы можете сделать, это "интегрировать" GWT-RPC с Spring MVC. Всего несколько строк кода - и вы можете реализовать свои службы GWT-RPC как стандартные Spring @Controllers. У них будет доступ ко всем компонентам с автопроводкой и т. Д. Что еще нужно? Через Spring вы можете получить доступ к чему угодно.

Итак, вот как вы это делаете:

public abstract class GwtRpcController extends RemoteServiceServlet implements Controller, ServletConfigAware {
private static Log log = LogFactory.getLog(GwtRpcController.class);

private ServletConfig servletConfig;

@Override
public ServletConfig getServletConfig() {
    return servletConfig;
}

@Override
public void setServletConfig(ServletConfig servletConfig) {
    try {
        this.init(servletConfig);
    } catch (ServletException e) {
        throw new RuntimeException(e);
    }
    this.servletConfig = servletConfig;
}

@Override
protected void onAfterRequestDeserialized(RPCRequest rpcRequest) {
    super.onAfterRequestDeserialized(rpcRequest);    
}

@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {  
    super.doPost(request, response);
    return null;
}

@Override
protected void doUnexpectedFailure(Throwable e) {
    log.error(e.getMessage(), e);
}

}

И ваш сервис GWT-RPC:

@RemoteServiceRelativePath("gwtrpc/xxx")
public interface XxxService extends RemoteService {
...
}

@Controller
@RequestMapping(value = "xxx")
public class XxxServiceImpl extends GwtRpcController implements XxxService {
...
}

Убедитесь, что «gwtrpc / *» сопоставлен с сервлетом SpringDispatcher в web.xml. Обычно вы сопоставляете все ("/") с ним и делаете исключения для ресурсов, не относящихся к Spring, таких как CSS и т. Д., Поэтому вам не нужно ничего делать явно.

0 голосов
/ 04 августа 2009

GWT не является полным стеком приложений, таким как Rails, поэтому вы можете не найти такого интегрированного и готового решения как Rails. GWT - это, прежде всего, слой представления - вам все еще нужен слой постоянства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...