我有一个URL,它将在Java中调用方法my方法.它看起来像这样:
http://www.example.com/method?value=24
Run Code Online (Sandbox Code Playgroud)
如何检索值24并在我的被调用方法中使用它?
好的,在wicket中访问请求参数的方法是这样的:
final Request request = RequestCycle.get().getRequest();
final String valueAsString = request.getParameter("value");
int value = Integer.parseInt(valueAsString);
Run Code Online (Sandbox Code Playgroud)
但通常您不必这样做,因为您通过使用带有PageParameters对象的BookmarkablePageLinks传递参数,并从页面构造函数中读取这些对象.阅读此页面,了解Wicket中Bookmarkable Links的一些资料.
我假设您在Java代码中创建了数字 - "24" - 因为您说您正在使用Wicket.
因此,正如seanizer已经说过的,在99%的情况下,你不需要解析请求url来获取值,这样的东西就足够了:
public class MyPage extends WebPage {
public MyPage() {
// your number is generated somehow
final int value = 24;
this.add(new Link<Integer>("myLink") {
@Override
public void onClick() {
// do something with the value
int newValue = value * 2;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
或 - 与模特 - 像这样
public class MyPage extends WebPage {
public MyPage() {
// your number is generated somehow
int value = 24;
Model<Integer> model = new Model<Integer>(value);
this.add(new Link<Integer>("myLink", model) {
@Override
public void onClick() {
// your '24'
Integer value = this.getModelObject();
// do something with the value
int newValue = value * 2;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你真的,真的,真的,确实需要URL中的参数,我想这就是你想要的:
public class MyPage extends WebPage {
public MyPage(PageParameters parameters) {
// your number is generated somehow
Integer value = parameters.getAsInteger("value");
}
}
Run Code Online (Sandbox Code Playgroud)
根据您配置应用程序的方式,您可能需要相应地实现其他构造函数.
祝好运.
| 归档时间: |
|
| 查看次数: |
8273 次 |
| 最近记录: |