-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、rest services 和所有这些的新手,也是 stackoverflow 的新手,所以我希望我的问题足够清楚,并对我的英语不好感到抱歉。

4

1 回答 1

1

像 @RequestParam("formulier") 而不是控制器方法中的 modelattribute 之类的东西可以解决您的问题。而是创建一个对象 /container/bean 来表示您的数据,并且该 bean 应该具有已发布的字段。然后您可以将此 bean 创建为 ModelAttribute。例如,容器 bean FormBean 具有字段公式等,具有适当的 getter 和 setter。然后在控制器方法中使用 actionMethod(@ModelAttribute("beanInJsp") FormBean formBean )

于 2013-02-18T16:22:28.937 回答