私はAJAXを初めて使用し、現在Spring MVCで使用することを学んでいます。私は同じ問題に直面しています。
私が取り組んでいる実際のリアルタイム要件に進む前に、理解を深めるために、AJAX + Spring MVC + jquery の組み合わせ全体を本当に基本的なものでテストしています。
ページに検索ボックスと「送信」ボタンがあります。$.get を使用して、送信時にハードコードされたテキストを Spring コントローラーに送信しています。次に、そのコントローラーから別のテキストをコールバック関数に送り返し、返されたテキストを「アラート」ボックスを使用してコールバック関数に表示しようとしています。これはうまくいかないようです。
コールバック関数が呼び出されていることがわかります(コールバック関数内の「アラート」が起動されているため)ので、制御がコントローラーに転送されてコールバックメソッドに戻ると想定していますが、できませんコントローラーから返されたテキストが、コールバック メソッドのアラート ボックスに表示されない理由を突き止めてください。コールバック メソッドで戻り値を取得するために、ここで何が欠けているのかわかりません。
これに関するあなたの応答と助けは本当に感謝しています.
ありがとう。
テキスト ボックスと送信ボタンの HTML:
<div class = "searchcontactform">
<form id = "searchcontactform" name="searchcontactform" method="GET">
<input type = 'text' size='25' name = "searchlastname" id = "searchlastname" value='Enter Last Name to Search'/>
<input type = "submit" value="Find">
</form>
</div>
上記のフォームの送信時にトリガーされる JavaScript:
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/scripts/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function( ) {
$('#searchcontactform').submit(function(){
$.get("ContactList-JPA/search", {textsent : 'Hello Controller'},callback);
function callback(textreceived){
alert('In Callback. Text Received is: '+textreceived);
};
});
});
コントローラ:
@RequestMapping(value = "/search", method = RequestMethod.GET)
public @ResponseBody String searchcontact(@RequestParam(value="textsent") String textsent){
return textsent;
}
POM.xml の Jackson 依存関係:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.7.1</version>
</dependency>
servlet-context.xml および root-context.xml で駆動されるアノテーション:
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />