2012-01-16 57 views
0

我正在嘗試提交文本字段值並使用該servlet進行打印。 index.jsp是我的主頁,我使用jsp:include來包含駐留在另一個頁面login.html中的表單。表單值未提交給servlet

這裏是代碼我有login.html的

<form id="f1" action="ControllerServlet" method="GET"> 
<p>username 
<input class ="text-input" type="text" id="txtusername" /> 
</p> 
<p> 
<input type="submit" value="submit" /> 
</p> 

中的index.jsp

<div id="col3_content" class="clearfix"> 

     <h1>H1 Heading</h1> 
     <jsp:include page="login.html"></jsp:include> 
     </div> 

控制器servlet

String usrname = request.getParameter("txtusername").toString(); 

     out.print(usrname); 

問題是這樣的拋出一個null指針異常。我在這裏做錯了什麼?任何幫助讚賞。感謝

+0

哪種方法被覆蓋? doPost或doGet – adatapost 2012-01-16 10:12:59

+2

您不需要在request.getParameter()上調用toString(),它已經是一個String。 – craftsman 2012-01-16 10:16:18

回答

4

請使用沒有ID

<input class ="text-input" type="text" name="txtusername" /> 
+1

不要忽略'id'屬性,因爲OP可能會在javascript中用於驗證的地方。 – 2012-01-16 10:17:39

1

id不用於識別輸入參數的名稱。該參數的正確屬性是name,目前您使用的是沒有名稱的input。因此,使用

<input class ="text-input" type="text" name="txtusername" id="txtusername" /> 
1

您需要定義輸入標籤的name屬性的名字得到它在Servlet的。

<input class ="text-input" type="text" id="txtusername" name="txtusername" /> 

此外,請確保您在doGet中編寫代碼或servlet的服務方法,因爲您在表單標記中具有GET作爲操作。

0
Code for Login.html 

<form action="ControllerServlet" method="GET"> 
<p>username : 
<input type ="text" name="txtusername" /></p> 
<p><input type="submit" value="submit" /> </p> 
</form> 

ControllerServlet.java 

public void service(ServletRequest request, ServletResponse response) 
{ 
String username = request.getParameter("txtusername"); 
PrintWriter out = response.getWriter(); 
out.println("User Name " + username)