2012-11-20 76 views
0

我是新來的JSP,並嘗試從ASP.NET過渡(這是非常不同的)。我應該如何將值傳遞給頁面?

我基本上有一組html輸入按鈕。按下這些按鈕時,每個按鈕應重定向到同一頁面。然而,我也想傳遞一個參數,也就是說,我希望頁面根據哪個按鈕啓動重定向而行爲不同。

我到目前爲止所做的是將按鈕封裝在一個表單中,該表單與servlet的GET方法進行通信。從這裏,我可以看到哪個按鈕被按下。

我現在想重定向到頁面,並傳遞按下的按鈕的值。如何才能做到這一點?我需要重定向到的頁面是一個JSP頁面。

我的代碼:

HTML頁面:

<form action="DashboardServlet" method="get"> 
<input type="button" value="Button1" name="button1"/> 
<input type="button" value="Button2" name="button2"/> 
</form> 

DashboardServlet

.... 

    // If-statements to see what button was pressed 

.... 

編輯:我想使用會話存儲的價值。這是否有效?

回答

1
request.getParameter("button1"); 

它和你在文本框中使用的非常相似。

要檢查所按下的按鈕: -

if (request.getParameter("button1") != null) { 
    // button1 was pressed 

} else if (request.getParameter("button2") != null) { 
    // button2 was pressed 
} 

當你重定向請求到JSP頁面,你可以將這些參數添加到請求。直到您明確添加它,相同的請求參數將不會在您的JSP中可用。


如果您正在使用: - RequestDispatcher.forward(),那麼您可以在請求中設置的參數: -

request.setAttribute("button1", request.getParameter("button1").toString()); 

,然後: -

getServletContext().getRequestDispatcher("/yourJSP.jsp").forward() 

而在你JSP,使用: -

request.getAttribute("button1"); 

或者,如果你正在使用response.sendRidirect,您可以添加值到queryString: -

String buttonValue = request.getParameter("button1").toString(); 
response.sendRedirect("/yourJSP.jsp?button1=" + buttonValue); 
+0

@DotNET ..主編一職。 –

+0

感謝您的澄清。所以我首先必須設置屬性並在之後重定向?在這種情況下,簡單的response.sendRedirect()不起作用嗎? –

+0

@DotNET。在這種情況下,您的請求參數也會丟失。 response.sendRedirect使瀏覽器創建一個新的URL,並且該URL不會有你的原始參數。所以你必須再次明確地添加它。 –

相關問題