表单值未提交给servlet

时间:2012-01-16 10:09:42

标签: java jsp java-ee servlets

我正在尝试提交文本字段值并使用servlet打印它。 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>

控制器servlet

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

        out.print(usrname);

问题是这是抛出空指针异常。我在这做错了什么?任何帮助赞赏。感谢

5 个答案:

答案 0 :(得分:4)

请使用名称而非 ID

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

答案 1 :(得分:1)

id不用于标识输入参数的名称。参数的右侧属性为name,目前您使用的是没有名称的input。所以使用

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

答案 2 :(得分:1)

您需要定义输入标记的name属性,以便按名称在Servlet中获取它。

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

还要确保在doGet或servlet的服务方法中编写代码,因为在表单标记中有GET作为操作。

答案 3 :(得分: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)

答案 4 :(得分:0)

我遇到了类似的情况,当我检查前端时,该表格似乎正确填充了所有值。但是,在form.submit之后,从服务器端使用request.getParameter(“ the parameter”)不会返回填充的值。在浏览器中的“网络流量”选项卡上进行调整后,我看到参数在那里,但是有一个错字。 如果发生同样的事情,希望可以为您节省一些时间。