在 gwt 中使用 config.groovy 作为用户偏好

using config.groovy in gwt for user preference

我有一个 gwt 和 grails 遗留应用程序,我正在升级和修改。它是一个预订日历,基本上有不同 "views"。我遇到的问题是我希望用户能够在登录时为自己选择一个默认视图..我以前用一个只有 grails 的应用程序做过这个但是 gwt 有很大不同..我怎样才能将一些东西从 config.groovy 传递到 [=15= 的 gwt 部分] 要显示的视图..这个视图不是像 grails 视图那样的视图..把它想象成餐厅..用户可能只想查看特定餐厅的预订而不是所有餐厅的默认设置

也许不能直接回答您的问题,但您可以制作一个普通的 GWT 远程服务 UserPreferencesService,它将存储用户首选项

public interface UserPreferencesService extends RemoteService {
    List<Restaurant> getRestaurants(Account user);
    void setRestaurants(Account user, List<Restaurant> restaurants);
}

然后您可以在您的入口点决定向用户显示哪种视图

public final class Application implements EntryPoint {
    private AuthServiceAsync authService = 
        GWT.create(AuthService.class);
    private UserPreferencesAsync preferencesService =
        GWT.create(UserPreferencesService.class);

    @Override
    public void onModuleLoad() {
        // handle login
        authService.getAccount(new Callback<Account>() {
            @Override
            public void onSuccess(final Account account) {
                // check if user have a preferred restourants
                preferencesService.getRestaurants(account, 
                    new Callback<Account>() {
                        @Override
                        public void onSuccess(final List<Restaurant> restaurants) {
                            // user did not select any restaurants yet. 
                            // Show a selection widget
                            if (restaurants.isEmpty) {
                                RestaurantSelectorWidget widget =
                                    new RestaurantSelectorWidget();

                                // your custom handler here
                                widget.addHandler(new Handler() {
                                    @Override
                                    public void onSelected(/*...*/) {
                                        // save user preferences
                                        // and switch to normal view
                                    }
                                })
                                RootPanel.get("container")
                                         .add(widget);
                            } else {
                                // show normal view
                            }
                        }
                    }
                }
            }
        }
    }
}

您也可以查看 this 插件,它为 grails 添加了 GWT 支持。