【问题标题】:Unable to fetch value from selectbox to servlet无法从选择框获取值到 servlet
【发布时间】:2012-11-27 13:57:22
【问题描述】:

尝试将选中的选择框值(一次打开)与文本框值一起提交给 servlet;这是我的代码(jsp):

<script type="text/javascript">
function search(){
document.f2.action="/InfoUser/SearchBox";
document.f2.submit();
}
</script>

<form name="f2">
<div align="right">
<select id="select" name="select" style="color:#2D7EE7">
<option> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ----------- </option>
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
</select> 
<input type="text" name="search" style="color:#2D7EE7">
<input type="submit" value="Search" onclick="search()">
</div>
</form>

在 servlet 中:我已经写了

String[] select = request.getParameterValues("select");
String search = request.getParameter("search");

无法获取 servlet 中的值,我是否缺少一些 javascript/jquery 脚本来获取 servlet 中的值以及如何在 JSTL 的帮助下使用它。如果我出错了,请更正... ..随意评论,欢迎。

【问题讨论】:

  • 什么是 f2??是你的表单 ID 吗?

标签: java jsp servlets jstl


【解决方案1】:

尝试改变你的表单:

<form action="/InfoUser/SearchBox">
    <div align="right">
        <select id="select" name="select" style="color:#2D7EE7">
            <option> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -----------</option>
            <option value="a">A</option>
            <option value="b">B</option>
            <option value="c">C</option>
        </select>
        <input type="text" name="search" style="color:#2D7EE7">
        <input type="submit" value="Search">
    </div>
</form>

或者:

<script type="text/javascript">
    function search(){
        document.f2.action="/InfoUser/SearchBox";
        document.f2.submit();
    }
</script>

<form name="f2">
    <div align="right">
        <select id="select" name="select" style="color:#2D7EE7">
            <option> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ----------- </option>
            <option value="a">A</option>
            <option value="b">B</option>
            <option value="c">C</option>
        </select>
        <input type="text" name="search" style="color:#2D7EE7">
        <input type="submit" value="Search" onclick="search()">
    </div>
</form>

您缺少表单的名称,并且在您的 javascript 中您试图在不存在的表单上设置操作。

在 servlet 中你必须这样做:

String select = request.getParameter("select");
String search = request.getParameter("search");

您将无法使用:String[] select = request.getParameterValues("select");,除非您的选择元素具有 multiple="true"

【讨论】:

  • 我去找你的第二个答案,但仍然无法获取值......你猜为什么?
  • 更改后是否重启了服务器?也试试第一个代码块,在不需要的地方用javascript提交表单真的没有意义。
  • 非常感谢,现在我在一个类中使用这些值,例如:“select SQL_CALC_FOUND_ROWS * from info where '"+request.getAttribute("select")+"' like '%"+ request.getAttribute("search")+"%' order by serialNo asc limit " + offset + ", " + noOfRecords;" -- 这行出错了。你能看一下吗?跨度>
  • 写在一个类里,得到NullPointerException
  • 您在什么时候获得 NPE? request.getAttribute("select") 可以在扩展 HttpServlet 的类中使用,并覆盖将 HttpServletRequest 作为参数的适当方法。为了在其他类中使用请求,您必须将其传递给其他类。通过方法参数或构造函数参数传递它。或者只是获取 servlet 中的值并将它们传递给你的类。
猜你喜欢
  • 2012-05-26
  • 1970-01-01
  • 2020-04-25
  • 2019-07-30
  • 2018-09-10
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多