我有一个URL,它将在Java中调用我的方法。它看起来像这样:从请求URL中检索值
http://www.example.com/method?value=24
我如何可以检索值24
,在我所谓的方法使用它呢?
我有一个URL,它将在Java中调用我的方法。它看起来像这样:从请求URL中检索值
http://www.example.com/method?value=24
我如何可以检索值24
,在我所谓的方法使用它呢?
我在这里假设你在你的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;
}
}
}
}
或 - 配车型 - 这样
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;
}
}
}
}
如果你真的,真的,真的,真的需要从URL参数,我想这是你想要什么:
public class MyPage extends WebPage {
public MyPage(PageParameters parameters) {
// your number is generated somehow
Integer value = parameters.getAsInteger("value");
}
}
根据您配置应用程序的方式,您可能需要相应地实现其他构造函数。
祝你好运。
对不起老兄。我忘记通知你之前,它的检票口。但谢谢你的帮助。 – jimmy 2010-09-02 09:26:21
事情是这样的:
public class ExampleServlet extends HttpServlet {
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String s = request.getParameter("value");
int value = 0;
try {
value = Integer.parseInt(s);
} catch(NumberFormatException nfe) {
nfe.printStackTrace();
}
}
}
对于通用servlet开发来说是正确的,对于wicket来说是false – 2010-09-02 08:23:34
你是对的,但是在我回答的时候他并没有说明他使用了框架。 – 2010-09-02 08:28:13
我知道了,我会留下你的回答,因为这是许多场景的有效答案(只是不是这个) – 2010-09-02 08:39:22
OK,访问检票请求参数的方式是这样的:
final Request request = RequestCycle.get().getRequest();
final String valueAsString = request.getParameter("value");
int value = Integer.parseInt(valueAsString);
但通常你没有做到这一点,因为你使用BookmarkablePageLinks与PageParameters对象传递参数,并从page constructors读取这些对象。在Bookmarkable Links in Wicket上阅读本页面的一些资料。
谢谢你,你真棒。并感谢您的链接。这个检票链接非常有用。再次感谢。 – jimmy 2010-09-02 08:59:08
阅读“Wicket in Action”更有用:http://www.manning.com/dashorst/ – 2010-09-02 09:06:01
在上面的脚本中,在第一行获取nullpointerException RequestCycle.get()。getRequest(); 这是我的代码。 final Request request = RequestCycle.get()。getRequest(); final String value = request.getParameter(“value”); logger.info(“value from URL:”+ value); 并且我的URL是http:// localhost:8080/method?value =“test” – jimmy 2010-09-02 09:24:39
之一:
获得它的方法更多,但这些最直接。
什么框架?使用servlet?一个JSP?或者一个'URL'对象。什么方法以及如何调用。 – Bozho 2010-09-02 08:05:35
@Bozho。我使用Wicket。 – jimmy 2010-09-02 08:10:58
显示一些代码。 – Bozho 2010-09-02 08:11:31