在servlet中获取<select>的值

11

我有:

<select id="isTitles">
    <option value="true">enable</option>
    <option value="false">disable</option>
</select>

在我的index.jsp页面上。我想知道已经选择了什么:

response.getWriter().write( "User chose: " + request.getAttribute( "isTitles" ) );

但我得到了"用户选择:null"……=(

4个回答

23

把你的HTML代码改为:

<select id="isTitles" name="isTitles" >

select标签的id属性主要用于DOM操作,而name属性则是用来指定表单数据的键。

接着使用request.getParameter("isTitles"),你将会得到正确的值。getParameter方法用于从表单数据和URL查询字符串中检索参数。而getAttribute方法则用于在请求生命周期过程中通过处理链传递数据。


1
@Weibo Li,请告诉我在HTML标签中idname的区别? - nightin_gale

6
您需要将您的属性名称传递为name="isTitles"
<select name="isTitles">
</select>

request.getParameter() 方法可以获取参数名。


4

request.getAttribute("isTitles")改为request.getParameter("isTitles")

此外,选择字段没有名称,您还应该为其命名

<select id="isTitles" name="isTitles">
    <option value="true">enable</option>
    <option value="false">disable</option>
</select>


response.getWriter().write( "User chose: " + request.getParameter("isTitles" ) );

1
@nightin_gale:你还应该确保你的参数能够通过提交表单到达服务器。你可以通过观察request.getParameterMap()或循环打印所有键来轻松调试。 - Manuel Manhart

3

使用

request.getParameter("isTitles")

为您的选择框添加name属性

<select id="isTitles" name="isTitles" >

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接