2008-10-24 64 views
1

我如何通過從頁面的useBean的JSP中的參數在Java中一個servlet?我有一個表單中的數據,通過提交按鈕沒有問題,但沒有辦法發送任何其他內容。請幫忙?這裏是我的代碼:如何通過參數的servlet

<input name = "deleteGameButton" type = "submit" value = "Delete" 
onclick = "submitToServlet('DeleteGameServlet');"> 

下面是相應的JavaScript:

function submitToServlet(newAction) 
{ 
    document.userGameForm.action = newAction; 
} 

我想使servlet必須的UserBean

<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" /> 

回答

4

你有種這裏胡來訪問。

的onclick()是Javascript和在客戶端執行。它沒有(直接)更新會話範圍的bean的方法。該bean留在服務器端,並在HTML頁面爲生成時使用。要將參數傳遞迴servlet,您需要使用良好的舊錶單域,然後提交表單。

向表單中添加更多字段,在提交之前設置它們的值,然後提交。

在Servlet中調用request.getParameter(「name」);

P.S.使這種東西自動化USE STRUTS。 :-) Struts完全按照你想要的:在將參數傳遞給action之前,它用這些參數填充bean。透明。

+0

您好,感謝。我最終在表格中使用了額外的字段。但我認爲肯定有一些更容易的事情......我想這將是STRUTS。但它現在仍然可行,所以我將來會使用STRUTS,截止日期即將到來。謝謝。 – pypmannetjies 2008-10-25 07:56:50

0

喜嘗試用一個標籤:

<jsp:useBean id = "userBean" scope = "session" class = "org.project.User"/> 
<jsp:setProperty name="beanName" property="propertyname" value="value"/> 
</jsp:useBean> 

here

祝你好運!

+0

該標籤將在頁面生成期間更新服務器端的bean。這個人(顯然,很難確定)想要一個提交的表單來更新正在進行會話的bean。 – 2008-10-24 16:12:24

+0

確定,然後AJAX(或任何框架的建議STRUTS)是該溶液中,使得服務器側之間的通信和客戶端具有幕後工作要做,是嗎? – 2008-10-24 19:50:14

2

這取決於正是你正在嘗試做的。該

<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />

標籤將允許您使用會話屬性的UserBean在JSP中。如果會話中沒有userBean屬性,它將創建一個新的(使用org.project.User的默認構造函數)並將其放入會話中。

然後,當你到了servlet中,你可以檢索:

User user = (User)request.getSession().getAttribute("userBean"); 
1
getServletConfig().getServletContext().getRequestDispatcher("servlet path & name");   
dispatcher.forward (request, response);