grails - 在 gwt 中使用 config.groovy 来获取用户偏好

标签 grails gwt

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

最佳答案

也许不是你问题的直接答案,但你可以做一个普通的 GWT 远程服务 UserPreferencesService 来存储用户偏好

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

在您的入口点,您可以决定向用户显示哪种 View

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 支持的插件。

关于grails - 在 gwt 中使用 config.groovy 来获取用户偏好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38998845/

相关文章:

java - Grails 3.1 和 spring-security-core :3. 0.3

jQuery 验证 equalTo 不适用于 Grails

css - 如何在 GWT 中使用 CSSResource 应用复杂样式

java - 尝试创建演示者时出现辅助注入(inject)错误

grails - 将视频文件转换为.flv格式

grails - 将字符串转换为html

java - 在 MVP GWT 应用程序中测试 Presenter

css - GWT : Internet Explorer transparency issue

jquery - 隐藏参数网址(jQuery和Grails)

java - 将图表添加到现有 SmatGWT 项目