0

ボタンのオンクリックでコントローラーのメソッドを呼び出し、同じメソッドに変数を渡そうとしています。このようにajaxでこれを行っています

<c:url var="searchUrl" value="/servlet/mycontroller/searchmethod" />

$(document).ready(function()
     {
 $('#submit_btn').click(function(){
var dt = $('#search_data').val();
$.ajax({
    type: "POST",
    dataType : "json",
    url : "${searchUrl}/" + dt

});
});
});

 <td width="32%" align="right"><label>
  <input type="text" name="transaction_id" id="search_data" class="fld_txt" />
</label></td>
<td width="15%" align="right"><label>
  <input type="button" class="button_grey" name="submit" id="submit_btn" value="Search" class="button" />

マイコントローラー

@RequestMapping(value = "/searchUrl/{dt}", method = RequestMethod.GET)
public List<Dto> searchJobList(WebRequest request, @PathVariable String dt, Model model) throws Throwable {
        System.out.println("Retrieve Id >> "+dt);
        List<Dto> list = Service.getJobSearchList(dt);
        return list;
} 

このように、次のエラーが発生しています

http://localhost:8080/Sample/servlet/mycontroller/searchmethod/123(dt var value)    

コントローラーで検索メソッドを呼び出して、テキストボックスの値をこれに渡すにはどうすればよいですか?? この dt に基づいてリストを表示する必要がありますか? 何か助けて??

4

1 に答える 1

1

request mappingこのように変更する必要があります

 @RequestMapping(value = "/servlet/mycontroller/searchmethod/{dt}", method = RequestMethod.GET)

searchUrlJavaスクリプト変数です。コントローラー側では、マップする必要がありますactual URL

したがって、最終的なコードは次のようになります

@RequestMapping(value = "/servlet/mycontroller/searchmethod/{dt}", method = RequestMethod.GET)
public List<Dto> searchJobList(WebRequest request, @PathVariable String dt, Model model) throws Throwable {
        System.out.println("Retrieve Id >> "+dt);
        List<Dto> list = Service.getJobSearchList(dt);
        return list;
} 

コメントで述べたように、web.xml マッピングは次のとおりです。

  <servlet-mapping>
        <servlet-name>Controller</servlet-name>
         <url-pattern>/servlet/*</url-pattern>
        </servlet-mapping>

したがって、以下のようにリクエスト マッピングを追加する必要があります (メモ/servletは によって処理されますweb.xml ) 。

 @RequestMapping(value = "/mycontroller/searchmethod/{dt}", method = RequestMethod.GET)
于 2013-05-09T10:08:47.397 に答える