2014-10-07 98 views
1

這裏是JSP代碼:HttpServletRequest的無法執行的getParameter操作

<li> 
    <input type="hidden" name="testID" value="mot0000001"> 
    <a href="${pageContext.request.contextPath}/LoadTestDetails">Sample Test</a> 
</li> 

這裏LoadTestDetails是Servlet的名稱。該servlet被調用,但打印testID,通過out.println(request.getParameter("testID"));我得到了輸出:null

+0

安置自己的servlet代碼。 – 2014-10-07 13:58:46

回答

0

當您點擊該鏈接時,瀏覽器只需執行HTTP GET請求。隱藏的input字段的值不會一起發送。

爲了得到你想要的效果,無論是提交一個表單用JavaScript或追加值作爲URL參數是這樣的:

<a href="${pageContext.request.contextPath}/LoadTestDetails?testID=mot0000001"> 
    Sample Test</a> 

形式提交具有擾亂瀏覽器導航(後退按鈕的副作用),URL編碼的參數將在URL中可見。選擇你喜歡的。

實例形式提交的Javascript:

<form id="myForm" action="${pageContext.request.contextPath}/LoadTestDetails" 
      method="POST"> 
    <input type="hidden" name="testID" value="mot0000001"> 
    <a href="#" onclick="document.getElementById('myForm').submit();"> 
     Sample Test</a> 
</form> 
+0

是否有可能不傳遞參數到url? – 2014-10-07 14:01:42

+0

@ M.S。是的。請閱讀我的回答,我提到了2種方法。如果您不希望它包含在URL中,請使用Javascript提交表單。 – icza 2014-10-07 14:02:15

+0

編輯並添加示例如何使用Javascript提交表單。 – icza 2014-10-07 14:08:21