我有一个用scala、spring、sitemesh和jspx/jstl编写的web项目。问题出在jspx上。我总是遇到这样的问题,它希望类型是java集合类型,所以我必须在scala/java集合之间不断转换。有时我忘记了,我的视线就会爆炸,等等。
我想知道是否有一篇博客文章描述了如何/涉及到从jsp/jstl/jspx迁移到scalate?因为在其他情况下,切换似乎有点压倒性,不管现在我认为jspx很烦人。
发布于 2011-05-07 05:48:14
好的,所以我尝试了一下,试着看看整个事情是如何运作的。事实证明,这相当容易。对于任何感兴趣的人,这里有以下步骤:
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]然后我就跟着scaml文档走了。超级简单。唯一令人尴尬的是试图放入内联javascript...it抱怨缩进之类的问题。所以我把它移到了一个单独的文件中。
根本不需要删除sitemesh (但我可以在将来准备好的时候删除),而且我可以在空闲时迁移jspx文件。再简单不过了。
https://stackoverflow.com/questions/5913373
复制相似问题