我正在阅读这些问题
但在我们需要进行转换的情况下,我仍然无法得到它。
有人能举例说明在web apllicationj
中使用转换服务的真实例子吗?答案 0 :(得分:2)
Spring Webflow使用spring的转换服务。 Webflow不提供InitBinder类型方法/注释的可用性。因此,您告诉Spring您希望为所有流程完成的所有转换。如果ConversionService不可用,则绑定支持将不可用。
答案 1 :(得分:1)
转换服务可用于直接在UI和业务对象之间进行转换。
假设我有一个带有产品下拉列表的webapp。定义ProductConversionService可以直接从下拉列表(例如,id 4)转换为Product。现在在我的代码(控制器,API等)中,我只是引用一个产品,一切都会自动发生。
在较旧的用户界面中,我看到了大量用于此转换的代码。我会故意给出一个粗略的例子:
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()具有所选产品。干净简单。我也可以在网络层之外使用它。