2012-01-16 15 views
0

テキストフィールドの値を送信し、サーブレットを使用して印刷しようとしています。 index.jspは私のメインページです.jsp:includeを使用して、login.htmlの別のページにあるフォームをインクルードしています。ここフォームの値がサーブレットに送信されない

は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> 

コントローラサーブレット

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

     out.print(usrname); 

問題は、このですヌルを投げているポインタ例外。私はここで間違って何をしていますか?どんな助けもありがたい。おかげ

+0

どのメソッドがオーバーライドされていますか? doPostまたはdoGet – adatapost

+2

request.getParameter()でtoString()を呼び出す必要はありません。すでにStringです。 – craftsman

答えて

4

名前ないIDを使用してください

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

OPがjavascriptのようにどこかでそれを使用している可能性があるので、 'id'属性を省略しないでください。 –

1

idは、入力パラメータの名前を識別するために使用されていません。パラメータの右の属性はnameですが、現在は名前なしでinputを使用しています。だから、あなたが名前でサーブレットにそれを得るためにinputタグのname属性を定義する必要が

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

を使用しています。

また、フォームタグでGETを実行しているので、サーブレットのdoGetまたはserviceメソッドにコードを記述していることを確認してください。

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) 
関連する問題