Spring2 Web MVC - 控制器的动态视图?

发布于 2024-09-18 22:03:13 字数 647 浏览 5 评论 0原文

Spring2中有没有办法构建控制器可以重定向到的动态视图?

我有一个带有隐藏 ID 字段的表单。 如果提交表单或发生其他异常,我想重定向回表单(我已设置 formView)。它重定向正常,但是当它重定向回表单时,它会丢失 ID 参数。有什么办法可以把它放回去吗?

我知道在 Struts2 中你可以通过这样的操作结果来做到这一点:

<result name="success" type="redirect" >
              <param name="location">index</param>
              <param name="category">${category}</param>
              <param name="pageNumber">${pageNumber}</param>
              <param name="parse">true</param>
              <param name="encode">true</param>
</result>

长话短说,我希望能够重定向到这样的 URL:index.htm?id=3

Is there a way in Spring2 to build dynamic views to which a Controller can redirect to?

I have a form with a hidden field for an ID.
If the form is submited or other exception occurs i want to redirect back to the form (i have set formView). It redirect ok, but when it redirect back to form it is loosing the ID parameter. Is there a way i can put it back ?

I know in Struts2 you could do this by having an action result like this:

<result name="success" type="redirect" >
              <param name="location">index</param>
              <param name="category">${category}</param>
              <param name="pageNumber">${pageNumber}</param>
              <param name="parse">true</param>
              <param name="encode">true</param>
</result>

Long story short i want to be able to redirect to an URL like: index.htm?id=3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心如狂蝶 2024-09-25 22:03:13

是的。这是 PetClinic 的一个例子:

@Controller
@RequestMapping("/editPet.do")
@SessionAttributes("pet")
public class EditPetForm {

    // ...

    @ModelAttribute("types")
    public Collection<PetType> populatePetTypes() {
        return this.clinic.getPetTypes();
    }

    @RequestMapping(method = RequestMethod.POST)
    public String processSubmit(
            @ModelAttribute("pet") Pet pet, BindingResult result, SessionStatus status) {

        new PetValidator().validate(pet, result);
        if (result.hasErrors()) {
            return "petForm";
        }
        else {
            this.clinic.storePet(pet);
            status.setComplete();
            return "redirect:owner.do?ownerId=" + pet.getOwner().getId();
        }
    }
}

Yes it is. Here's an example from the PetClinic:

@Controller
@RequestMapping("/editPet.do")
@SessionAttributes("pet")
public class EditPetForm {

    // ...

    @ModelAttribute("types")
    public Collection<PetType> populatePetTypes() {
        return this.clinic.getPetTypes();
    }

    @RequestMapping(method = RequestMethod.POST)
    public String processSubmit(
            @ModelAttribute("pet") Pet pet, BindingResult result, SessionStatus status) {

        new PetValidator().validate(pet, result);
        if (result.hasErrors()) {
            return "petForm";
        }
        else {
            this.clinic.storePet(pet);
            status.setComplete();
            return "redirect:owner.do?ownerId=" + pet.getOwner().getId();
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文