java - Wicket - 通过 LoginPage 传递页面参数

标签 java wicket wicket-6

我想做的是一个简单的页面,它获取一个参数,该参数是对象的id

    @MountPath("share/${share_id}")
    public class IndexPage extends WebPage
    {
            public IndexPage(PageParameters parameters)
            {
                    String id = parameters.get("share_id").toString();
                    // etc...
            }
    }

必须确保此页面免受未经授权的访问。我添加了 @AuthorizeInstantiation("user") 注释和托管标准 Wicket 安全支持,包括扩展 MainApplication 中的 getSignInPageClass() AuthenticatedWebApplication.

问题是当我需要在使用原始参数授权后返回我的IndexPage时。我得到了一些解决方案,但我需要它更优雅、更常见(通用)。

  1. 重写 Application 类中的 restartResponseAtSignInPage() 方法
  2. 从RequestCycle中检索参数:

    final Request request = RequestCycle.get().getRequest();
    PageParametersEncoder encoder = new PageParametersEncoder();
    PageParameters parameters = encoder.decodePageParameters(request.getUrl());
    
  3. 通过抛出new RestartResponseAtInterceptPageException(getSignInPageClass(), newParameters);来传递它们

我知道这不是一个很好的解决方案,因为我需要确定我的网址中参数的确切索引是什么(编码器仅返回indexedParameters,而不返回namedParameters - 或者我做错了什么?)。

也许有人以前遇到过这个问题?

最佳答案

在您的 Siginpage 中,验证登录后,调用 continueToOriginalDestination();

这应该可以解决问题。

关于java - Wicket - 通过 LoginPage 传递页面参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15924410/

相关文章:

java - 通过鼠标单击选择时,Wicket 自动完成文本字段不会更新模型

java - 在 M1 Apple Silicon 上运行时禁用 junit5 测试

java - SourceDataLine.start() 将对象清空

java - 以编程方式关闭 Spring Boot 应用程序

java - 在同一个类的实例方法中使用静态方法

javascript - 从 Wicket 口在javascript中设置变量值

java - 有没有办法从数据库而不是 wicket 属性文件加载字符串资源?

java - 自动将更改后的值提交给域对象的 Wicket 复选框

java - 带有 setNullValid 问题的下拉选择

javascript - Wicket:通过ajax上传数据