2013-06-26 2 views
0

Ниже приведен код html внутри jsp для создания вкладок.Как получить имя активной вкладки или идентификатор с помощью java?

<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.How я могу использовать

request.getParameter("") 

метод для получения выбранной вкладки или активированную? Пожалуйста, помогите меня.Я нашел некоторые решения, использующие jquery, но я не хочу использовать JQuery. Пожалуйста, помогите мне. Как получить имя вкладки или идентификатор или значение, которое в настоящее время выбрано или активировано с помощью request.getParameter()?

+0

Java или JavaScript? – Thihara

+0

как вы называете ваш сервлет? –

+0

Почему вы не хотите использовать jQuery? – kunal18

ответ

0

Пожалуйста, убедитесь, что вы не использовали дублированный 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()

+0

. См. Мой отредактированный код .. – user2515189

+0

request.getParameter() следует принять входной параметр правильно? Так что я должен взять request.getParameter («id»); он не дает результата, если я выберу tab2. – user2515189

+1

лучше использовать jquery >> jQuery («. Selected»). Click (function() { }); – gjman2

0

Используйте JQuery! Это упростит вашу работу! Просто зарегистрируйте обработчик кликов на этих вкладках и отправьте запрос ajax сервлету с параметром в качестве идентификатора вашей вкладки, так просто! Ниже приведен код:

при условии: Tab1: ID = 'tab1', класс = 'Вкладка' Таб2: ID = 'tab2', класс = 'Вкладка'

// 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(){ 

    }, 
    }); 
}); 

Вы можете пропустить ошибку и полные функции; Я рассказал вам все необходимое. Это так просто.

Для получения идентификатора в сервлет используется:

String tabId = request.getParameter('param'); 

Парам ', потому что я указал:

data: {param: id} 

Если вы используете любое другое имя, чем «парам», использование это вместо этого.

Для того, чтобы отправить ответ от сервлета, просто используйте:

PrintWriter out = response.getWriter(); 
out.write("ABCD or whatever you want"); 
out.close(); // DON'T forget this! 
0

Это будет трудно выбрать без JQuery, вы должны повторять все a элементы, чтобы найти его (или какой-либо другой итерации будет необходимо).

  1. Вы должны найти a с «выбранным» классом и читать его ID (который $("a.selected").attr('id') в JQuery). Там нет «getElementByClass» в основной JS ...

  2. В обоих случаях вы должны установить это значение в скрытом виде элемента, который должен быть добавлен к <form> следующим образом:

  3. И то вы найдете его в сервлете с request.getParameter("activetab").

В любом случае это является основным решением 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> 
+0

Я не получил вас. Пожалуйста, объясните мне. Что значит «Вы должны выбрать a с« выбранным »классом и прочитать его ID»? помогите мне – user2515189

+0

Зачем использовать эту штуку, используя скрытый элемент, и все при использовании jquery эта вещь - кусок пирога! Является ли код, который я вам дал, кажется вам трудным? Вам комфортно с JavaScript или нет? – kunal18

+0

Я передумал: выберите означает, что вам нужно найти его с помощью «css selector» –

Смежные вопросы