将值从jsp发送到Servlet

时间:2013-05-03 10:47:39

标签: java jsp servlets

我有一个jsp,其中我有选择标签,我想得到  以及从我的Servlet中的jsp中的select中选择的值

<select id="listoffood" name="dropdown" onchange="foodname();">
<option value="bg">Burger</option>
<option value="pas">pasta</option>
<option value="pi">pizza</option>
</select>
<div id='content'></div>

这是javascript代码

function foodname()
{

  var xmlHttpReq = false;
    var self = this;
    document.getElementById('content').innerHtml='';
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('GET', "InformationServlet", true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.send(null);

    self.xmlHttpReq.onreadystatechange= function ()
    {
        //alert(document.getElementById('content'));
        if (self.xmlHttpReq.readyState==4)
        {
        if (self.xmlHttpReq.status == 200)
        {

        document.getElementById('content').innerHTML=self.xmlHttpReq.responseText;
        }
        }
    };

}

我所做的是使用像这样的get属性,但它不是在显示null

protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException 

    {
    // TODO Auto-generated method stub

    String coun = request.getParameter("dropdown");
    PrintWriter out=response.getWriter();
    System.out.println("here : "+coun);
}

提前致谢,我们非常感谢任何一段代码。

5 个答案:

答案 0 :(得分:1)

只需将您的AJAX open()请求更改为

即可
var select = document.getElementById("listoffood");
self.xmlHttpReq.open('GET', "InformationServlet?dropdown=" + select.options[select.selectedIndex].value, true);

答案 1 :(得分:0)

使用方法getParameterValues(String) 这是因为<select>标记可以有多个选定值(例如select multiple

String[] coun = request.getParameterValues("dropdown");

答案 2 :(得分:0)

查看这篇文章:

How to use onClick() or onSelect() on option tag in a JSP page?

您似乎在使用select标记而没有任何操作,例如onchange

答案 3 :(得分:0)

您可以使用

从列表框中获取所选项目文本
var e = document.getElementById("dropdown");
var selectedValue = e.options[selectBox.selectedIndex].value
在您的JS方法中

并使用servlet的链接发送此值。

答案 4 :(得分:0)

从select tag

中获取值
var e = document.getElementById("dropdown");
var selectedValue = e.options[selectBox.selectedIndex].value;

并编辑js功能

self.xmlHttpReq.open('GET', "InformationServlet?dropdown="selectedValue , true);

最后你应该看起来像

function foodname()
{

    var e = document.getElementById("dropdown");
    var selectedValue = e.options[selectBox.selectedIndex].value;

  var xmlHttpReq = false;
    var self = this;
    document.getElementById('content').innerHtml='';
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('GET', "InformationServlet?dropdown="selectedValue , true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.send(null);

    self.xmlHttpReq.onreadystatechange= function ()
    {
        //alert(document.getElementById('content'));
        if (self.xmlHttpReq.readyState==4)
        {
        if (self.xmlHttpReq.status == 200)
        {

        document.getElementById('content').innerHTML=self.xmlHttpReq.responseText;
        }
        }
    };
}
相关问题