scala,spring,sitemesh和jspx/jstl


问题内容

我有一个用scala,spring,sitemesh和jspx/jstl编写的Web项目。问题出在jspx。我一直遇到问题,希望它的类型为Java集合类型,因此我必须不断在scala /
java集合之间进行转换。有时我忘记了,而我的见解就爆炸了,等等。

我想知道是否有一篇博客文章描述了从jsp / jstl /
jspx迁移到扩展的方式/涉及什么?因为否则切换似乎有点不堪重负,无论现在我讨厌jspx都令人讨厌。


问题答案:

好的,所以我尝试了一下,只是想看看整个过程是如何工作的。事实证明这相当容易。这是针对任何有兴趣的人的步骤:

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并开始翻译代码。要访问模型对象,请在欺诈文件的顶部执行以下操作:

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

然后,我只是关注骗局文档。超级容易。唯一尴尬的是尝试放入内联javascript …它抱怨缩进或其他问题。所以我将其移到了单独的文件中。

完全不需要删除sitemesh(但是以后我可以随时删除),而且我可以随意迁移jspx文件。再简单不过了。