如何使用java获取活动选项卡名称或id?

如何使用java获取活动选项卡名称或id?,java,html,tabs,Java,Html,Tabs,下面是我在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&

下面是我在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>

获取所选或激活的选项卡的方法?请帮助我。我使用jquery找到了一些解决方案,但我不想使用jquery。请帮助我。如何获取当前使用request.getParameter()选择或激活的选项卡名称、id或值?

请确保您没有使用重复的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()
使用jQuery!这会让你的工作更轻松!只需在这些选项卡上注册一个单击处理程序,然后向servlet发送一个ajax请求,并将参数作为选项卡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!

如果没有jQuery,将很难选择它,您必须迭代所有
a
元素才能找到它(或者需要一些其他的迭代)

  • 您必须找到带有“selected”类的
    a
    ,并读取其ID(在jQuery中为
    $(“a.selected”).attr('ID')
    )。核心JS中没有“getElementByClass”

  • 在这两种情况下,都必须将此值设置为隐藏的表单元素,该元素必须添加到
    中,如下所示:

  • 然后您将在servlet中找到它,其中包含
    request.getParameter(“activetab”)

  • 无论如何,这是一个核心Javascript解决方案:

    
    函数setTabAndSubmit(){
    var选项卡;
    var archors=document.getElementsByTagName(“a”);
    对于(var i=0;i
    您如何调用servlet?为什么不想使用jQuery?如果您想知道选择了哪个选项卡或单击了哪个选项卡,至少要为这两个选项卡指定一个不同的Id,这是有意义的。对不起。请参阅编辑的postrequest。getParameter()应该正确使用输入参数?那么我应该如何使用request.getParameter(“Id”);如果我选择tab2,它不会给出结果。最好使用jQUery>>jQUery(“.selected”)。单击(function(){});他应该使用jQuery,.click()很容易做到这一点!我没听懂你的意思。请解释我。什么是“你必须用“已选”类选择a并读取其ID”?请帮助我为什么要使用这个东西,使用隐藏元素,以及所有使用jQUery的东西都是小菜一碟!我给你的密码对你来说难吗?你对JavaScript是否满意?我改为:select意味着你必须用一个“css选择器”找到它@stalin我不确定你写的东西是不是这里的目标。您发送一个ajax请求,这与发布表单不同。我们看到页面上有4行,其余的可能不支持ajax……这是真的,但是如果我是他,我也想发送一些其他数据,而不仅仅是tabid:)
    PrintWriter out = response.getWriter();
    out.write("ABCD or whatever you want");
    out.close();  // DON'T forget this!
    
    <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>