2008-09-16 6 views

답변

4

, 나는이 포틀릿을 사용하는 것이 좋습니다 것입니다 :

다음은 예입니다. Spring에서 포틀릿은 전체 페이지의 단편을 담당하기 때문에 가벼운 컨트롤러이므로 매우 쉽게 작성할 수 있습니다. Spring 2.5를 사용한다면, 새로운 주석 지원의 모든 이점을 누릴 수 있으며, Spring을 사용함에 따른 의존성 주입과 다른 이점을 통해 전체 Spring 애플리케이션에 잘 맞습니다.

포틀릿 컨트롤러 여기서, 거의 서블릿 컨트롤러와 동일한 단순한 예이다 : 여기

@RequestMapping("VIEW") 
@Controller 
public class NewsPortlet { 

    private NewsService newsService; 

    @Autowired 
    public NewsPortlet(NewsService newsService) { 
     this.newsService = newsService; 
    } 

    @RequestMapping(method = RequestMethod.GET) 
    public String view(Model model) { 
     model.addAttribute(newsService.getLatests(10)); 
     return "news";   
    } 
} 

하는 NewsService 자동 제어기에 주입한다. 뷰 메서드는 모델에 List 객체를 추가합니다.이 객체는 JSP에서 $ {newsList}로 사용할 수 있습니다. Spring은 메소드의 리턴 값을 기반으로 news.jsp 뷰를 찾을 것이다. RequestMapping은이 contoller가 포틀릿의 VIEW 모드를위한 것인지를 Spring에 알려준다.

XML 구성은 뷰와 컨트롤러가있는 위치를 지정해야합니다 : 당신이 원하는 경우

<!-- look for controllers and services here --> 
<context:component-scan base-package="com.example.news"/> 

<!-- look for views here --> 
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp/news/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 

단순히 기존 응용 프로그램에서 포틀릿을 포함하려면, 당신은 같은 eXo로를 포틀릿 컨테이너를 묶을 수 있습니다 Sun 또는 Apache. 애플리케이션을 포틀릿 세트로 구축하려는 경우 Liferay Portal과 같은 완전한 솔루션을 고려할 수 있습니다.

+0

thnx, 스프링 포틀릿 MVC에 대한 경험이 있습니까? 튜토리얼, 가이드 라인 어쩌면 포털 서버를 추천 할 수 있습니까? – moriarty

+0

그것들을 개발하는 것이 나의 주요한 직업이기 때문에 나는 많은 경험을 가지고 있습니다. 그러나 특정 온라인 설명서는 많지 않습니다. Porlet 프레임 워크가 거의 동일하기 때문에 Spring MVC 문서를 따라 가면 꽤 멀어 질 수있다. Liferay는 훌륭한 포털이지만 필요한 것 이상일 수 있습니다. – pjesi

2

타일이 아플 수 있습니다. 이전에 발생한 것 (즉, 아무 것도 아닌)에 대한 방대한 개선이 아니라 오히려 제한적입니다.

Wicket은 JSP로 정해지지 않는 이상 원하는 것 이상일 수 있습니다.

+0

"타일이 고통 스러울 수 있습니다." 흠, 태피스트리가 유망한 보이는 –

0

Tapestry은 재사용 가능한 구성 요소를 쉽게 만드는 데 중점을 둔 Java 웹 앱 프레임 워크입니다.

나는 sitemesh를 사용했으며 표준 머리글과 바닥 글에 일련의 페이지를 래핑하는 것이 좋지만 Tapestry는 페이지 당 여러 번 사용되는 많은 페이지에서 사용되는 구성 요소를 만드는 것이 좋습니다. Tapestry 구성 요소는 다른 구성 요소를 매개 변수로 사용하여 Sitemesh 스타일 래핑을 허용합니다.

+0

... 가 좋은 스크린 캐스트가 ... http://tapestry.apache.org/tapestry5/screencast.html 이 그것을 확인 윌은 많은 thnx. 유용한 답변을 얻으려면 – moriarty

1

나는 GWT의 큰 팬이다. 이 도구를 사용하면 구성 요소를 일반 Java 클래스로 작성한 다음 원하는대로 페이지에 삽입 할 수 있습니다. 모든 것은 Javascript로 컴파일되도록 끝납니다. 당신은 스프링 MVC를 사용하는 경우

public class MyApplication implements EntryPoint, HistoryListener 
{ 
    static final String INIT_STATE = "status"; 

    /** 
    * This is the entry point method. Instantiates the home page. 
    */ 
    public void onModuleLoad() 
    { 
     RootPanel.get().setStyleName ("root"); 
     initHistorySupport(); 
    } 

    private void initHistorySupport() 
    { 
     History.addHistoryListener (this); 

     // check to see if there are any tokens passed at startup via the browser’s URI 
     String token = History.getToken(); 
     if (token.length() == 0) 
     { 
      onHistoryChanged (INIT_STATE); 
     } 
     else 
     { 
      onHistoryChanged (token); 
     } 
    } 


    /** 
    * Fired when the user clicks the browser's 'back' or 'forward' buttons. 
    * 
    * @param historyToken the token representing the current history state 
    */ 
    public void onHistoryChanged (String historyToken) 
    { 
     RootPanel.get().clear(); 
     Page page; 
     if (Page1.TOKEN.equalsIgnoreCase (historyToken)) 
     { 
      page = new Page1(); 
     } 
     else if (Page2.TOKEN.equalsIgnoreCase (historyToken)) 
     { 
      page = new Page2(); 
     } 
     else if (Page3.TOKEN.equalsIgnoreCase (historyToken)) 
     { 
      page = new Page3(); 
     } 
     RootPanel.get().add (page); 
    } 
} 
0

"재사용 가능한 구성 요소"가이 컨텍스트에서 의미하는 바는 100 % 확신 할 수 없지만 배너, 바닥 글, 탐색 링크 등과 같이 모든 페이지에 특정 공통 요소를 표시하려는 경우 더 이상 봐야 SiteMesh. 우리 팀은 두 가지 국제화 된 웹 응용 프로그램에서 성공적으로이 도구를 사용했습니다.

2

응용 프로그램이 실제로 web portal 인 경우를 제외하고는 포틀렛 사용을 권장하지 않습니다.

"재사용 가능한 구성 요소"를 사용하려는 경우 JSP tagfiles을 사용하면 일반 JSP와 동일하기 때문에 간단하지만 매우 강력합니다.

나는 타일을 사용해 본 경험이있어 복잡성은 그다지 가치가 없다.

1

Ajax JSF (IceFaces) 및 Liferay Portal과 함께 포틀릿에 대한 경험이 많았으므로 누구에게도 추천하지 않았습니다. 실제로 튜토리얼 및 실제 지옥을 읽을 때 모두보기 좋습니다. 물론 Spring MVC와 JSP로 훨씬 편리하고 가벼운 것 같지만 어쨌든 포틀릿은 기술을 지원하지 않습니다.