我正在构建一个java servlet来响应某些HTML表单。这是一个简单的测试形式:
<FORM action="http://somesite.com/prog/adduser" method="post">
<P>
<LABEL for="firstname">First name: </LABEL>
<INPUT type="text" id="firstname"><BR>
<LABEL for="lastname">Last name: </LABEL>
<INPUT type="text" id="lastname"><BR>
<LABEL for="email">email: </LABEL>
<INPUT type="text" id="email"><BR>
<INPUT type="radio" name="sex" value="Male"> Male<BR>
<INPUT type="radio" name="sex" value="Female"> Female<BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>
</FORM>
在服务器端,我得到了HttpRequest。但是当我得到这样的参数时:
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String firstName = req.getParameter("firstname");
String lastName = req.getParameter("lastname");
String sex = req.getParameter("sex");
String email = req.getParameter("email");
}
只有“性”才行。我已经在这几个小时没有理解为什么“性”与其他人不同。所有其他参数均为空。好吧,它是唯一的“无线电”类型,但是有一种特殊的方法来获取其他参数吗?
谢谢!
答案 0 :(得分:6)
在HTML表单中,为Input值赋予Name属性非常重要,ID属性仅帮助页面中的Javascript更好地找到您的Input元素。
我注意到你错过了几个输入元素的Name属性。
答案 1 :(得分:4)
您需要将name
属性与其余输入标记一起添加,就像使用sex
输入标记一样:
<FORM action="http://somesite.com/prog/adduser" method="post">
<P>
<LABEL for="firstname">First name: </LABEL>
<INPUT type="text" id="firstname" name="firstname"><BR>
<LABEL for="lastname">Last name: </LABEL>
<INPUT type="text" id="lastname" name="lastname"><BR>
<LABEL for="email">email: </LABEL>
<INPUT type="text" id="email" name="email"><BR>
<INPUT type="radio" name="sex" value="Male"> Male<BR>
<INPUT type="radio" name="sex" value="Female"> Female<BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>