如何在同一个jsp页面中从javascript代码获取值到jsp scriptlet

时间:2013-05-20 06:30:17

标签: javascript scriptlet

下面是我的代码(1.jsp)

<html>
<head>
  <script type="text/javascript">

   function changeFunc() {
var selectBox = document.getElementById("selectBox");
var selectedValue = selectBox.options[selectBox.selectedIndex].value;
  document.write("\n value is"+selectedValue);
  }

 </script>
</head>
 <body>
<form method="post" action="SampServlet">
  <select id="selectBox" name="selurl" onchange="changeFunc();">
   <option value="1">Option #1</option>
   <option value="2">Option #2</option>
  </select>
</form>
 </body>
</html>

这里我已将此代码插入到jsp页面中。并将“selectedValue”的值从javascript获取到与此相同的jsp中的scriptlet。

<% String val=(String)request.getParameter("selurl");
System.out.println("\n selected value is:"+val); %>

我选择的值为null作为输出。如果我打印javascript selectedValue参数它给我正确的输出,即输出作为选择的选项。但在scriptlet中我得到null.Where是错误。我包括所有标题和指令。请帮助我。

4 个答案:

答案 0 :(得分:2)

在您的网络浏览器中,您只有html,javascript和css。所有JSP代码都应该在服务器上运行。所以你只获得了jsp文件的输出。在此之后,您无法更改jsp代码。

答案 1 :(得分:2)

使用提交按钮在同一页面上获取您选择的值 不需要任何功能,不需要提交。

例如:

<form method="post" action="">
 <select id="selectBox" name="selurl">
<option value="1">Option #1</option>
<option value="2">Option #2</option>
</select>
<input type="submit" value="Submit" name="sub">
                                                //use scriplet tag 
<% String r=request.getParameter("sub");
if(r.equals("Submit"){
String s=request.getParameter("selurl");
System.out.println("selected value is "+s);
}%>
</form>

答案 2 :(得分:0)

您的select元素应该具有name属性,您必须在request.getParameter()中使用该名称

<select id="selectBox" name="selurl"">
   <option value="1">Option #1</option>
   <option value="2">Option #2</option>
</select>


String val = request.getParameter("mySelect");

编辑:

如果您希望在select元素的onchange事件上发出服务器请求,则必须使用Ajax。

使用jQuery,

$.post('SampServlet', {selectedValue: selectedValue}, function(data) {
//Update view
});

答案 3 :(得分:0)

您错过了<submit>按钮。

<form method="post" action="SampServlet">
  <select id="selectBox" name="selurl" onchange="changeFunc();">
   <option value="1">Option #1</option>
   <option value="2">Option #2</option>
  </select>
  <input type="submit" /> <!-- MISSING!! -->
</form>

添加按钮并单击它以将表单提交到您的servlet,并将所选值发送为selurl。请注意,您的表单action属性指向SampServlet,它似乎是一个servlet。对于jsps,我们通常在表单中使用action="page.jsp"

修改
如果您想在用户从下拉列表中选择值时自动发布表单,只需将onchange设置为:(您甚至不需要<submit>按钮)

onchange="this.form.submit()"