java - 如何使用参数 Wicket 引用页面

标签 java parameters wicket hyperlink

我需要发送引用系统实例的 Wicket 链接(例如,通过邮件)。

例如,邮件可能包含:

来自:...@... 到: ...@... 主题:待定订单

... 文本... 点击这里:http://I.dont.care.the.style.of.the.linkPage.OrderDetailPage?orderId=1001 ... 文本...

我有这个 OrderDetailPage 的两个构造函数

public class OrderDetailPage extends BasePage {

public OrderDetailPage(PageParameters parameters){
    this(OrderRepository.getById(parameters.getAsInteger("orderId")), null);
}


public OrderDetailPage(Order order, WebPage back) {
       super(new CompoundPropertyModel<Order>(order));
       //Renders the page for the order received.
       //back is the page we came from. Null hides link.

       ...
    }
...
}

我不知道如何发送链接,因为我无法创建书签链接,因为它会寻找默认构造函数……当然,我没有。

我正在为另一个页面做的是:

final PageParameters pars = new PageParameters();
pars.add("orderId", "1001");

BookmarkablePageLink<Void> link = new BookmarkablePageLink<Void>("alink", OrderDetailPage.class, pars); 
                        
link.add(new Label("id", "1001"));  
add(link);

标记:

<li><a href="#" wicket:id="alink"><span wicket:id="id"/></a></li>

生成的网址是

http://localhost:8080/wicket/bookmarkable/packagePath.OrderDetailPage?orderId=1001

这没问题,但仍然没有调用“参数”构造函数。

修复:

我解决了这个问题,但我知道解决方案不可行。

public OrderDetailPage() {
        this(WicketApplication.orderRepository.get(Integer
                .parseInt(RequestCycle.get().getRequest()
                        .getRequestParameters().getParameterValue("orderId").toString())),
                null);

    }

编辑:我读到一些关于“挂载”URL 的内容,这行得通吗?怎么办?

最佳答案

BookMarkablePageLink 有 2 个构造函数:一个用于连接到链接页面的默认构造函数,另一个带有额外参数以提供带有 PageParameters 的链接,它将使用 PageParameters 调用构造函数。

您可以像这样创建链接:

PageParameters pars = new PageParameters();
pars.add("id", 12345);
add(new BookmarkablePageLink("id", MyPage.class, pars);

这也适用于 setResponsePage 方法:

PageParameters pars = new PageParameters();
pars.add("id", 12345);
setResponsePage(MyPage.class, pars);

关于java - 如何使用参数 Wicket 引用页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7516705/

相关文章:

java - spring如何构造和自动接线图

wicket - 通过 wicket 下载 zip 文件

java - 如何使用局部变量注释进行 Wicket 授权?

powershell - 如何从powershell中的配置文件中获取变量

sql-server - case 语句中按参数值排序并不总是有效,但如果硬编码则可以

java - 当尝试访问不存在的页面时,我可以重定向到有效的 Wicket 页面吗?

java - 为什么这个递归构造函数不会导致编译时错误?

java - 类型不匹配 : cannot convert from Boolean to boolean

java - 现在使用 if else 语句时出现不兼容错误

function - 当参数可能是两种类型之一时如何声明(和传递)Julia 函数参数