Java SpringMVC3:如何以restfully方式构造表单动作?

Java SpringMVC3:如何以restfully方式构造表单动作?,java,spring,spring-mvc,Java,Spring,Spring Mvc,鉴于一些典型的搜索表单,我无法在提交表单时构造此表单操作: /myapp/orders/${orderId) 因为用户正在键入orderId,所以我不能将其包含在表单操作中 有没有一种巧妙的方法可以做到这一点 SpringMVC3 那么使用拦截器来构造它呢?是 这是个好办法吗 否则我就只能使用 用javascript向mung添加操作 提交。有趣 根据我的经验,典型的搜索查询通常不会像您所描述的那样无缝地一对一映射到结果。即使您要求他们输入订单Id,他们也可能希望能够输入部分Id并从列表中进行

鉴于一些典型的搜索表单,我无法在提交表单时构造此表单操作:

/myapp/orders/${orderId)
因为用户正在键入orderId,所以我不能将其包含在表单操作中

  • 有没有一种巧妙的方法可以做到这一点 SpringMVC3

  • 那么使用拦截器来构造它呢?是 这是个好办法吗

  • 否则我就只能使用 用javascript向mung添加操作 提交。有趣


  • 根据我的经验,典型的搜索查询通常不会像您所描述的那样无缝地一对一映射到结果。即使您要求他们输入订单Id,他们也可能希望能够输入部分Id并从列表中进行选择,或者他们可能会键入错误(您希望能够通过可能的选择给出有意义的响应,而对不存在的资源的错误GET调用应该只是404)


    我喜欢做的是有一个称为SearchResult之类的中间资源(它不必是系统中的实际对象)。然后,我的搜索查询是对/myapp/searchResults/的创建调用,其中包括作为POST变量的查询参数。如果创建的搜索结果指向一个订单,那么您可以重定向到/orders/741,但如果没有,您就有更多的能力来处理它。

    我最后编写了一个拦截器,在GET请求中查找“id”参数,如果找到了,则将该值附加到uri并向前转发。例如,这:

    /myapp/orders?id=1337
    
    变成

    /myapp/orders/1337?id=1337
    

    是的,我们有一些奇怪的要求,迫使我在这件事上采取行动。我们没有能力搜索订单表。而且,在几乎所有情况下,用户都会确切地知道他们需要提出的顺序。我对SpringMVC比较陌生,我想确保他们没有一些automagic为我做这件事。在几乎所有其他情况下,您的方法都是更合理的解决方案(我也会使用)。谢谢