Spring Vs Struts + Freemarker - PullRequest
       11

Spring Vs Struts + Freemarker

1 голос
/ 04 апреля 2011

Для веб-приложения Если у меня есть выбор между Spring и Struts для использования с Freemarker, какой из них подходит, или я бы лучше спросил, какая инфраструктура MVC плавно интегрируется с Freemarker?

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Оба имеют довольно хорошую поддержку freemarker.Его легко включить.Struts2 немного больше основан на pojo.Весна немного ближе к сервлету API.Макросы Spring по умолчанию в spring.ftl требуют небольшой работы, и вам, вероятно, понадобится свернуть свои собственные.Некоторые макросы взрываются, если объект отсутствует, вместо того, чтобы изящно проверять его и двигаться дальше, если его там нет.

Мне нравится применение проверки Spring с помощью аннотаций лучше, чем проверка по умолчанию в Struts 2.Тем не менее, сохранение ошибок валидации при перенаправлениях легче в Struts2.Для Spring вам в конечном итоге понадобится развернуть собственное решение, в котором, как мне кажется, фреймворк должен скрывать больше этого.Необходимость использования подверженного ошибкам макроса spring.bind с шаблонами freemarker более обременительна, чем это необходимо.

Предполагается, что Spring 3.1 обеспечит лучшую поддержку для ошибок проверки при переадресации.

Также обратите внимание, что в Spring я обычно использую более одного преобразователя представления.например, я все еще оставляю поддержку для .jsp.

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">
        <map>
            <entry key="html" value="text/html"/>
            <entry key="ftl" value="text/html"/>
            <entry key="xml" value="application/xml"/>
            <entry key="json" value="application/json"/>
        </map>
    </property>
    <property name="favorPathExtension" value="true"/>
    <property name="defaultViews">
        <list>
            <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
        </list>
    </property>
    <property name="viewResolvers">
        <list>
            <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
                <property name="cache" value="true"/>
                <property name="order" value="1"/>
                <property name="prefix" value="/"/>
                <property name="suffix" value=".ftl"/>
                <property name="contentType" value="text/html;charset=UTF-8"/>
                <property name="exposeSpringMacroHelpers" value="true"/>
                <property name="requestContextAttribute" value="rc"/>
                <property name="exposeSessionAttributes" value="true"/>
                <property name="exposeRequestAttributes" value="true"/>
            </bean>

     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <property name="prefix" value="/WEB-INF/views/"/>
                <property name="suffix" value=".jsp"/>
     </bean>
        </list>
    </property>
</bean>
1 голос
/ 04 апреля 2011

Spring Framework предоставляет все необходимое для использования FreeMarker для вашего слоя представления.

...