2009-02-10 2 views
0

이전 포틀릿 애플리케이션을 WPS5에서 WPS6으로 마이그레이션하고 있습니다. 응용 프로그램이 IBM 레거시 컨테이너를 사용 중입니다. 마이그레이션 가이드에 따르면 일부 포털 라이브러리와 일부 태그 참조 만 갱신합니다. 응용 프로그램은 여전히 ​​IBM 레거시 컨테이너와 수정 된 Struts 포틀릿을 사용하고 있습니다.Websphere 포틀릿 마이그레이션, DispatchAction의 누락 된 매개 변수

나는에 의해 같은 링크를 만들 때 : 나는 DispatchAction을 사용하고

/wps/.../...[hash-like chars]_spf_strutsAction=!2fpage1.do!3fmethod%3ddisplay#[hash-like chars] 

, 파견 매개 변수 '방법'을 찾아 볼 것입니다 :

<html:link page="/page1.do?method=display">Go to Page 1</html:link> 

링크 같은 URL을 렌더링을 . 그러나 위의 링크를 클릭하면 dispatchAction에 '메서드'매개 변수를 전달할 수 없습니다.

name: spf_strutsAction 
value: !2fpage1.do!3fmethod=display 

그래서 그것은 아주 분명하다고 매개 변수가 request.getParameter('spf_strutsAction') 아래에 묻혀 따라서 작업을 파견 할 수 없기 때문에 request.getParameter('method') 반환 널 (null) : 요청 매개 변수에 대한 추가 조사는이 키 - 값 쌍을 발견했다.

물론 묻힌 매개 변수를 읽음으로써 파견 작업을 강제로 수행 할 수 있습니다. 그러나 문제는 '방법'이외의 많은 다른 매개 변수가 있다는 것입니다.

포털 서버는 PortletRequest 구현을 제공해야한다고 생각합니다. 그 PortletRequest.getParameter() 어떻게 든 잘못입니까? 아니면 Portlet Struts 문제입니까? 어떻게 이러한 매개 변수를 요청 객체 안에 다시 넣을 수 있습니까?

답변

1

몇 가지 아이디어 :

  1. 당신은 링크를 생성하는 포틀릿 태그를 사용할 수 있습니다.
  2. IBM 포털 6.0과 함께 제공되는 "최신"struts jar를 확인하십시오.
  3. jsr168을 준수하는 스프링 포틀릿 MVC와 같은 더 나은 포틀릿 웹 프레임 워크 사용을 고려하십시오. IBM은 앞으로도 이전 포틀릿 모델을 지원하지 않을 것입니다.
관련 문제