Spring MVC,controller:如何将字符串转换为List <integer>和List <date []>?</date []> </integer>

时间:2014-05-12 12:08:06

标签: java spring spring-mvc

希望你做得很好。

我有一个与Spring MVC及其控制器有关的问题。

我在控制器中有以下代码片段:

@RequestMapping(value = "/booking-curve/history/journeys/{journeyIds}/travel-date-ranges/{travelDateRanges}", method = RequestMethod.GET)
@ResponseBody
public String generateHistoricalBookingCurve(@PathVariable List<Integer> journeyIds, @PathVariable List<Date[]> travelDateRanges) {
    double[] aveBookingLoadFactors = pricingService.calculateAveBookingLoadFactors(journeyIds, travelDateRanges);
    JsonNodeFactory nodeFactory = JsonNodeFactory.instance;
    ArrayNode array = nodeFactory.arrayNode();
    for (int i = 0; i < aveBookingLoadFactors.length; i++) {
        ObjectNode object = nodeFactory.objectNode();
        object.put("daysBefore", aveBookingLoadFactors.length - 1 - i);
        object.put("aveBookingLoadFactor", aveBookingLoadFactors[i]);
        array.add(object);
    }
    return array.toString();
}

url链接中的journeyIds由逗号分隔的ID组成,url链接中的travelDateRanges由逗号分隔的日期对组成。例如travelIds是11,22,44之类的东西,travelDateRanges是像2012-11-11to2012-12-01,2014-02-11到2014-05-03这样的东西。

我想春天mvc可以自动将上面的字符串转换为List&#39;&lt;&#39; Integer&#39;&gt;&#39;和列表&#39;&lt;&#39;日期[]&#39;&gt;&#39;如我上面的方法所示。我认为PropertyEditor或Converter应该适用于我的情况,但是我试着没有运气,或者我没有正确配置它们。

这里的专家,请介绍一下我的问题!非常感谢你!

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:2)

您必须提供转换器和包装类......

@Component
public class YourConverter implements Converter<YourIntWrapper, YourDateWrapper> {

    @Override
    public YourDateWrapper convert(YourIntWrapper source) {
                // do your stuff
        return yourOutWrapper;
    }
}

并注册

<bean id="conversionService"
          class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.yourpackage.YourConverter"/>
            </set>
        </property>
    </bean>