我有一個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