0

次の JSP を作成します。この JSP は 2 つのボタンを作成します。

<form:form method="POST"  action="${pageContext.request.contextPath}/link">    
     <div class="button-container" style="float:left;clear:right">
        <table>

            <tr>
               <td>
                  <input id="post" type="image" src="${pageContext.request.contextPath}/<spring:theme code="image"/>votup.png" 
                </td>
            </tr>

            <tr class="hidden">    
                <td class="hidden">           
                  <input type="text" name="mark" value="up"/> 
                </td>
            </tr>

     <tr>
                <td>
                   <input id="post" type="image" src="${pageContext.request.contextPath}/<spring:theme code="image"/>votdown.png" 
                </td>
             </tr>

             <tr class="hidden">
                <td class="hidden">
                    <input type="text" name="mark" value="down"/>
                </td>
             </tr>

コントローラークラスで

 @RequestMapping(value = "/link", method = RequestMethod.POST)
 public String sendMark(@RequestParam("mark") final String marking){


 }

文字列マーキングの値が上、下にあることに気付きました。これは、2 つのボタンのどちらをクリックしても発生します。これの代わりに、ユーザーがクリックするボタンに応じてのみ上下したいです(最初のボタンをクリックすると上に、2番目のボタンをクリックすると下になります)。この結果を取得する理由は、両方の非表示の値をマークとして名前を付けたためだと理解しましたが、別の方法で分離する方法がわかりません。実際、JSPで何かをするのは初めてです。この問題にいくつかのタグライブラリを使用できますか?コメントや回答は大歓迎です! ありがとうございました

4

3 に答える 3

0

2 つのボタン用に 2 つの別個のフォームを作成し、両方のフォームに隠しフィールドを含めることをお勧めします。これで、値が 1 つだけ取得されます。

ただし、アクションが異なる 2 つの別個のフォームを作成する場合は、隠しフィールドは必要ありません。

これがお役に立てば幸いです。

乾杯。

于 2012-05-30T07:01:26.360 に答える
0

POST コマンドを処理する前に、隠しフィールドを 1 つだけ配置し、その値を JavaScript で変更することをお勧めします。

于 2012-05-30T06:52:26.470 に答える
0

私が理解しているように、賛成または反対の投票のためにフォームを送信します。また、同じフォームのアクションごとに 2 つのボタンが必要ですが、違いを生む方法がわかりません。私はこのようなことをします:

フォームに、リクエスト マッピングに従ってアクションを配置します (既に行われているようです)。次に、両方のボタンがフォームを送信するように作成されます。まず、両方のボタンに同じ ID があり、ID は要素ごとに一意である必要があります。したがって、矢印とフォーム ID を次のように指定します。

<input id="postup" type="image" 
<input id="postdown" type="image"
<form id="myform"

次に、次のように onclick アクションをパウンします。そして、2 つの JS 関数を作成します。

function postUp () {
   $('#mark').val("up");
   $('#myform').submit();
}
function postDown () {
   $('#mark').val("down");
   $('#myform').submit();
}

コントローラーは次のようになります。

@RequestMapping(value = "/link", method = RequestMethod.POST)
public String sendMark(Model model, HttpServletRequest request){

String mark = request.getParameter("mark");
return "yourjsp"
}

そして、あなたにはあなたの価値があります。それが役に立てば幸い !よろしく!

于 2012-12-21T15:25:03.893 に答える