2011-05-06 4 views
3

웹 프로젝트는 scala, spring, sitemesh 및 jspx/jstl로 작성했습니다. 문제는 jspx입니다. 나는 타입들이 자바 컬렉션 타입이되기를 원하는 이슈들에 대해 계속해서 실행하고 있으므로 스칼라/자바 콜렉션 사이의 변환을 유지해야한다. 그리고 때로는 잊어 버리고 내 생각이 날아가 버린다.scala, spring, scalate

jsp/jstl/jspx에서 scalate로 마이그레이션하는 방법/방법을 설명하는 블로그 게시물이 있다면 어떨까요? 그렇지 않으면 단지 전환하기에는 압도적 인 것처럼 보이기 때문에 jspx가 당황하다고 생각합니다.

답변

8

좋아, 그래서 나는 급락했다. 그리고이 모든 것이 어떻게 작동하는지 보려고했다. 상당히 쉬운 것으로 판명되었습니다. 여기에 관심있는 사람들을위한 단계입니다 :

메이븐 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 파일의 맨 위에 다음을 수행
[email protected] var x:String 
[email protected] var y:List[com.xxx.model.MyModelObject] 

그럼 난 그냥 scaml의 문서를 따랐다. 슈퍼 쉽습니다. 어색한 것은 인라인 자바 스크립트를 넣으려고하는 것뿐이었습니다 ... 들여 쓰기 또는 뭔가에 대해 불평했습니다. 그래서 나는 그것을 분리 된 파일로 옮겼다.

sitemesh를 전혀 제거 할 필요가 없었지만 (준비가 끝나면 언제든지 가능할 수 있습니다.) 여유 시간에 jspx 파일을 마이그레이션 할 수 있습니다. 더 쉬울 수 없습니다.