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

时间:2013-06-26 07:13:41

标签: 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><a id="tab2" name="history" onclick="parent.frame1.location='frame2.jsp'">HISTORY</a></li>
</ul>

现在我想在我的servlet中选择选项卡或激活的选项卡名称或ID。如何使用

request.getParameter("") 

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

激活

3 个答案:

答案 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元素才能找到它(或者需要一些其他的迭代)。

  1. 你必须找到带有“selected”类的a并读取它的ID(在jQuery中为$("a.selected").attr('id'))。核心JS中没有“getElementByClass”......

  2. 在这两种情况下,您都必须将此值设置为隐藏的表单元素,该元素必须添加到<form>,如下所示:<input type="hidden" name="activetab"></input>

  3. 然后您将在request.getParameter("activetab")的servlet中找到它。

  4. 无论如何,这是一个核心的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>