下面是我在jsp中用于创建标签的html代码。
<form name="form1" action="/SampleServlet" method="post">
<ul id="navigation">
<li><a id="tab1" name="live" class="selected" onclick="parent.frame1.location='frame1.jsp'">LIVE</a></li>
<li><a id="tab2" name="history" onclick="parent.frame1.location='frame2.jsp'">HISTORY</a></li>
</ul>
现在我想在我的servlet中选择选项卡或激活的选项卡名称或ID。如何使用
request.getParameter("")
获取所选或激活的选项卡的方法?请帮帮我。我找到了一些使用jquery的解决方案,但我不想使用Jquery。请帮助我。如何获取选项卡名称或id或值被选中目前或目前使用 request.getParameter()?
激活答案 0 :(得分:0)
请确保您没有使用重复的ID,例如:将第二个链接ID更改为tab2
<ul id="navigation">
<li><a id="tab1" name="live" class="selected" onclick="parent.frame1.location='frame1.jsp'">LIVE</a></li>
<li><a id="tab2" name="live" class="selected" onclick="parent.frame1.location='frame2.jsp'">HISTORY</a></li>
</ul>
您尝试使用request.getparametervalues()
答案 1 :(得分:0)
使用jQuery!它会让你的工作更轻松!只需在这些选项卡上注册一个单击处理程序,并将ajax请求发送到servlet,并将参数作为选项卡ID,这很简单!以下是代码:
假设:Tab1:ID ='tab1',CLASS ='tab' Tab2:ID ='tab2',CLASS ='tab'
// click handler
$('.tab').click(function(){
// get tab id
var id = $(this).attr('id');
// now send an ajax request to servlet with parameter which stores this id value
$.ajax({
type: 'GET', // request type
data: {param: id},
url: '/servleturl',
dataType: 'text', // or json or any other which your servlet will return
// this will be executed when request is successful and a correct response is recieved
success: function(response){
alert(response); // or do whatever you like to do with response
},
// this function will be executed when there is any error
error: function(){
},
// this will be always executed, like a finally block in Java
complete: function(){
},
});
});
您可以省略错误并完成功能;我告诉过你所有必要的东西。这很简单。
要在servlet中接收ID,请使用:
String tabId = request.getParameter('param');
'param',因为我已经指定:
data: {param: id}
如果您使用除“param”之外的任何其他名称,请改用它。
要从servlet发送响应,只需使用:
PrintWriter out = response.getWriter();
out.write("ABCD or whatever you want");
out.close(); // DON'T forget this!
答案 2 :(得分:0)
如果没有jQuery将很难选择它,你必须迭代所有a
元素才能找到它(或者需要一些其他的迭代)。
你必须找到带有“selected”类的a
并读取它的ID(在jQuery中为$("a.selected").attr('id')
)。核心JS中没有“getElementByClass”......
在这两种情况下,您都必须将此值设置为隐藏的表单元素,该元素必须添加到<form>
,如下所示:<input type="hidden" name="activetab"></input>
然后您将在request.getParameter("activetab")
的servlet中找到它。
无论如何,这是一个核心的Javascript解决方案:http://jsfiddle.net/balintbako/NdNqX/
<script type="text/javascript">
function setTabAndSubmit() {
var tab;
var anchors = document.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
if (anchors[i].className == 'selected') {
tab = anchors[i].id;
break;
}
}
document.forms["myform"].elements["activetab"].value = tab;
alert(tab);
}
</script>
<form name="myform" action="/path" onSubmit="setTabAndSubmit()">
<input name="activetab" type="hidden"></input>
<input name="somefield" type="text"></input>
<input type="submit" value="Submit"></input>
</form>
<a id="a1" href="#" class="selected">link 1</a>
<a id="a2" href="#">link 2</a>