2012-05-05 2 views
1

お手伝いできますか?コンボボックスの値を<a href>に設定してサーブレットに送信

JSPで私は次のコード

<form action="/TutorWebApp/controller" method="POST" name="editTestForm"> 
       <p> 
        Выберите предмет 
        <select name='subject'> 
         <c:forEach items="${subjects}" var="subject" >     
          <option value="${subject.key}"> 
           ${subject.value.getName()} 
          </option>      
         </c:forEach> 
        </select> 
       </p> 
       <p> 
        <a href="/TutorWebApp/controller?command=all_test_edit&subject_id=${subject}"> 
         Get list of tests 
        </a> 
       </p> 
</form> 

私はrequest.getParametr("subject");を行うと、私はNULL値を持っています。

私はコンボボックスからhref選択値を送信しようとしています。 どうすればいいですか? ありがとう

+1

本当に 'a'を使ってやる必要がありますか?送信またはボタンにすることはできませんか? –

+0

@Luiggi Mendozaはい、私はより多くの単一のリンクを持っていないので。そしてボタンでそれは難しいでしょう – Ray

+0

ボタンで_difficulty_は何ですか? IMHOそれはさらに簡単に見える –

答えて

1

<a href="location">はフォーム送信ではなく、リダイレクトであり、パラメータはクエリ文字列から読み込まれます。

は、クエリ文字列

command=all_test_edit&subject_id=${subject} 

を見ると何のsubjectはありませんので、request.getParametr("subject");は常にあなたのnullを与えるだろう。 <input type="submit">または<button>を使用する場合は、フォーム提出が行われます。

JavaScriptは使用できません。だからこそ他の方法はない。そしてcommandsubject_idパラメータについて、あなたは

<input type="hidden" name="command" value='all_test_edit'> 

や他の静的パラメータについても同様に使用することができます。

UPDATE:

あなたがsubmit値を使用して、アクションのパラメータを渡すことができますように見えます。次に例を示します。

JSPが

<form id="form1" action="SomeServlet"> 
    Insert text: 
    <input type="text" name="txtInputText" /> 
    <br /> 
    <input type="submit" name="btnAction" value="Add" /> 
    <br /> 
    <input type="submit" name="btnAction" value="Edit" /> 
    <br /> 
    <input type="submit" name="btnAction" value="Delete" /> 
    <br /> 
</form> 

サーブレット:

System.out.println(request.getQueryString()); 
String s = request.getParameter("btnAction"); 

あなたがAddボタンをクリックすると、sは、 "追加" になります。 Editボタンをクリックすると、sは「編集」となります。これは柔軟ではありませんが、問題の解決策になる可能性があります。

+0

私は4つの隠しフィールドと4つのボタンをADD、EDIT、DELETE、NEXTに使用すると、どのボタンが押されたのか理解できません。私は4つの隠されたフィールドから1つにプッシュボタンを接続できないので – Ray

+0

@レイの回答が更新されました –

関連する問題