-1

これが私のコードです

コントローラ:

@RequestMapping(value = "/trip/mail.html", method = RequestMethod.POST)
    public @ResponseBody String mailForm(@ModelAttribute(value="formulier") String   formulier, @ModelAttribute(value="orgMessage") String orgMessage, @ModelAttribute(value="tripID") String tripID, BindingResult result) {
    ModelMap mailModel = new ModelMap();
    SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    mailModel.addAttribute("title", "Trip update");
    mailModel.addAttribute("subtitle1", "Message from organiser");
    mailModel.addAttribute("message", orgMessage);
    mailModel.addAttribute("subtitle2", "The following trip changes occured");
    mailModel.addAttribute("text", formulier);
    mailModel.addAttribute("date", format.format(new Date()));

    SimpleMailMessage msg = new SimpleMailMessage(message);
    msg.setTo("kdgteamf@gmail.com");
    tripService.sendMail(mailModel, msg);
    return "Congrats!";

JavaScript:

var formInhoud = $("#changes").html();
var organiserMessage = $("#Message").val();
var tripID = $("#hiddenTripID").val();
$("#dialog-message").css("cursor", "wait");

$.post("/ProjectTeamF-1.0/trip/mail.html", { formulier: formInhoud, orgMessage: organiserMessage, tripID: tripID}, function (data) { $("#viewTripForm").submit(); } );

バックエンドの spring mvc からメールを送信しようとしていますが、これはすべて機能しますが、投稿に問題があります。JavaScript を実行すると正常に動作し、コントローラーで "mailForm" が正常に動作します (メールが送信されます)。唯一の問題は、メールに追加したい情報を含む 3 つのモデル属性を受信して​​いないように見えることです。コンソールでそれらを印刷すると空になり、javascriptに正しい情報が含まれていると確信しています。ここで私が間違っていることを誰かが見ていますか?

私はSpring MVC、残りのサービスなどすべてが初めてで、stackoverflowも初めてなので、質問が十分に明確で、英語が下手で申し訳ありません。

4

1 に答える 1

1

コントローラーメソッドの modelattribute の代わりに @RequestParam("formulier") のようなものが問題を解決します。代わりに、データを表すオブジェクト /container/bean を作成します。この Bean には、投稿されるフィールドが必要です。そして、この Bean を ModelAttribute として作成できます。たとえば、適切なゲッターとセッターを備えたフィールドformulierなどを持つコンテナBean FormBean。そして、コントローラーメソッドで actionMethod(@ModelAttribute("beanInJsp") FormBean formBean ) を使用します

于 2013-02-18T16:22:28.937 に答える