日期:2014-05-19  浏览次数:20695 次

javascript 请求servlet实现将函数中定义的变量作为参数
  最近遇到了一个困惑的问题,主要实现将form表单中的select下拉列表框选中的值和气候文本框的值作为参数传个sevlet,在servlet类中得到的参数还是变量 ,alert是可以打印出的 ,具体代码如下 ,希望大家帮忙,谢谢

<td>Filter By:&nbsp;&nbsp; 
<select name="selectFilter" id="selectFilter">
<option selected value="Task ID">Task ID</option>
<option value="Act Name">Act Name</option>
<option value="Location">Location</option>
<option value="FG Part">FG Part</option>
<option value="Child">Child</option>
<option value="Parent">Parent</option>
</select>
</td>

<td>
<input name="filterValue" type="text" value="" id="text"
size="15px;" width="15" style="background-color: #D2E9FF; height: 27px;" />&nbsp; <input class="filterB1" type="button" value="apply" onclick="funcFilter();"></input>
</td>

这是javascript代码
function funcFilter(){
var select=document.getElementById('selectFilter');
var textBox=document.getElementById('text');
var selectedText=select.value;
var insertValue=textBox.value;
alert(selectedText);
alert(insertValue);
 window.location="/filter?project=<%=request.getAttribute("project")%>+'&filterText='+selectedText+'&filterValue='+insertValue";
}

上面的alert可以打印出来选择的值和输入的值 ,如Act Name    tom   ,可是在后台的程序中执行
String project=req.getParameter("project");
String filterText=req.getParameter("filterText");
String filterValue=req.getParameter("filterValue");

System.out.println(project+"~"+filterText+"~"+filterValue);
执行时打印 Ceasss~filterText~filterVlue,而不是Ceasss~Act Name~tom
project是没有问题的,只是后面两个没有得到 ,是怎么回事,望指点,谢谢
------解决方案--------------------
window.location='/filter?project=<%=request.getAttribute("project")%>'+'&filterText='+selectedText+'&filterValue='+insertValue;