0

以下は、タブを作成するための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>

選択したタブまたはアクティブ化されたタブの名前または ID をサーブレットで取得したいのですが、どのように使用できますか

request.getParameter("") 

選択またはアクティブ化されたタブを取得する方法?助けてください.jqueryを使用していくつかの解決策を見つけましたが、Jqueryを使用したくありません.助けてください.現在選択されているタブ名またはIDまたは値を取得するにはどうすればよいですか? request.getParameter()を使用して現在アクティブ化されてい ますか?

4

3 に答える 3

0

重複した ID を使用していないことを確認してください。例: 2 番目のリンク 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()

于 2013-06-26T07:34:39.263 に答える
0

jQueryを使おう!あなたの仕事が楽になります!これらのタブでクリック ハンドラーを登録し、パラメーターをタブ ID としてサーブレットに ajax リクエストを送信するだけです。とても簡単です。以下はコードです:

仮定: 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(){

    },
  });
});

エラーと完全な関数を省略できます。必要なことはすべてお伝えしました。とてもシンプルです。

使用するサーブレットで ID を受け取るには:

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

「param」、指定したため:

data: {param: id}

「param」以外の名前を使用する場合は、代わりにそれを使用してください。

サーブレットから応答を送信するには、次を使用します。

PrintWriter out = response.getWriter();
out.write("ABCD or whatever you want");
out.close();  // DON'T forget this!
于 2013-06-26T07:43:17.257 に答える
0

jQuery なしでそれを選択するのは難しいでしょう。aそれを見つけるためにすべての要素を反復する必要があります (または他の反復が必要になります)。

  1. a「選択された」クラスを見つけて、そのID( $("a.selected").attr('id')jQueryにあります)を読み取る必要があります。コアJSには「getElementByClass」はありません...

  2. どちらの場合も、この値を非表示のフォーム要素に設定する必要があり、次のように追加する必要があり<form>ます。<input type="hidden" name="activetab"></input>

  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>
于 2013-06-26T07:44:07.650 に答える