【问题标题】:what is the real use case scenario for spring conversion servicespring转换服务的真实用例场景是什么
【发布时间】:2011-07-11 05:04:03
【问题描述】:

我正在阅读这个问题

ConversionService in Spring

但我还是不明白在什么场景下我们需要进行转换。

谁能给我一个在网络应用程序中使用转换服务的现实生活示例j

【问题讨论】:

    标签: java spring-mvc type-conversion


    【解决方案1】:

    Spring Webflow 使用 spring 的转换服务。 Webflow 不提供 InitBinder 类型方法/注释的可用性。所以你告诉 Spring 你想要为所有流完成的所有转换。如果 ConversionService 不可用,则绑定支持将不可用。

    【讨论】:

    • 所以你的意思是我不需要它 foe spring mvc
    • 正确的,你不需要它用于 Spring MVC 我只使用 InitBinder 就很好了。
    【解决方案2】:

    转换服务可用于直接在 UI 和业务对象之间进行转换。

    假设我有一个带有产品下拉列表的 web 应用。定义一个 ProductConversionService 将下拉列表的值(例如 id 4)转换为 Product 很简单。现在在我的代码(控制器、API 等)中,我只引用一个产品,一切都会自动发生。

    在较旧的 UI 中,我看到了大量专门用于这种转换的代码。我会故意举一个粗略的例子:

    String productIdParam = request.getParameter("productId");
    // Validate that the param exists, is numeric, etc.....
    Long productId        = Long.valueOf(productIdParam);
    Product product       = productManager.findProduct(productId);
    

    这段代码也更难测试,因为我必须创建一个模拟请求,给它一个 productIdParameter 等等。我还需要在需要的任何地方都可以使用 productManager。

    使用 ConversionService,我可以将其放入 JSP 中:

    <form:select path="mystuff.product">
      <option value="1">Nook</option>
      <option value="2">Cranny</option>
    </form:select>
    

    当我的 Spring MVC 控制器收到请求时,mystuff.getProduct() 具有选定的产品。干净简单。我也可以在 Web 层之外使用它。

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      相关资源
      最近更新 更多