скала, весна и скалате - PullRequest
3 голосов
/ 06 мая 2011

У меня есть веб-проект, написанный на scala, spring, sitemesh и jspx / jstl. Проблема с JSPX. Я продолжаю сталкиваться с проблемами, когда он хочет, чтобы типы были типами коллекций java, и поэтому я должен продолжать конвертировать между коллекциями scala / java. И иногда я забываю, и мой взгляд взрывается и т. Д.

Мне интересно, есть ли где-нибудь пост в блоге, в котором описывается, как / что связано с миграцией из jsp / jstl / jspx для масштабирования? Потому что в противном случае переключение кажется слишком сложным, и теперь я думаю, что jspx раздражает.

1 Ответ

8 голосов
/ 07 мая 2011

Хорошо, поэтому я сделал решающий шаг и просто попытался увидеть, как все это работает. Оказывается, это довольно легко. Вот шаги для всех, кто заинтересован:

Зависимости Maven pom:

    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-compiler</artifactId>
        <version>${scala.version}</version>
    </dependency>

    <!-- scalate templating engine -->
    <dependency>
        <groupId>org.fusesource.scalate</groupId>
        <artifactId>scalate-spring-mvc</artifactId>
        <version>${scalate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.fusesource.scalate</groupId>
        <artifactId>scalate-wikitext</artifactId>
        <version>${scalate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.fusesource.scalate</groupId>
        <artifactId>scalate-page</artifactId>
        <version>${scalate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.fusesource.scalamd</groupId>
        <artifactId>scalamd</artifactId>
        <version>${scalamd.version}</version>
    </dependency>
    <dependency>
        <groupId>org.fusesource.scalate</groupId>
        <artifactId>scalate-test</artifactId>
        <version>${scalate.version}</version>
        <scope>test</scope>
    </dependency>

MVC-servlet.xml:

<bean id="viewNameTranslator" class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator"/>
<bean id="scalateViewResolver" class="org.fusesource.scalate.spring.view.ScalateViewResolver"
    p:order="1" p:prefix="/WEB-INF/view/" p:suffix=".scaml" />

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
     p:order="2" p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="/WEB-INF/view/" p:suffix=".jspx" />

Затем я переименовал некоторые jspx и начал переводить код. Чтобы получить доступ к объектам модели, я делаю это в верхней части моего файла scaml:

-@ var x:String
-@ var y:List[com.xxx.model.MyModelObject]

Тогда я просто последовал за мошенническими документами. Супер просто. Единственное, что было неловко, это пытаться вставить встроенный javascript ... он жаловался на отступ или что-то в этом роде. Поэтому я перенес это в отдельный файл.

Не нужно было вообще удалять sitemesh (но я могу в будущем, когда я буду готов), и я могу мигрировать файлы jspx в свободное время Не может быть проще.

...