2012-01-16 58 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)