我正在尝试提交文本字段值并使用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);
问题是这是抛出空指针异常。我在这做错了什么?任何帮助赞赏。感谢
答案 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”)不会返回填充的值。在浏览器中的“网络流量”选项卡上进行调整后,我看到参数在那里,但是有一个错字。 如果发生同样的事情,希望可以为您节省一些时间。