0

Struts2를 MVC 프레임 워크로 사용하는 웹 사이트가 있습니다. JSP를 다시 스킨해야합니다. 이전 JSP를 새 JSP와 함께 액세스 할 수 있어야합니다. 그래서 /newdesign/이라는 루트 폴더를 추가하고 기존 JSP 폴더를 모두 복사했습니다. 사용자의 세션에서Struts 2에서 전역 동적 결과 경로 접두어를 적용하여 JSP를 다시 변형시키는 방법은 무엇입니까?

  1. 저장이 동적으로 다음
  2. 같이 /newdesign/를 추가 : 나는 이름/값 쌍으로 로그인하면

    그래서 ?newdesign=true (예를 들어) 나는 내가 할 수있는 다음 초기 요청을 해요 관련 액션에 대해 새 JSP 또는 이전 JSP가로드되었는지를 결정하는 태그에 대한 글로벌 접두어 struts.xml.

모든 이전 페이지 된 새 페이지로 다시 피부의 경우 개발자가 확인할 수 있습니다이 방법.

위의 파트 2는 어떻게합니까? - struts.convention.result.path = /newdesign을 사용하여 보았습니다.하지만 이것은 동적이 아니며 사용자가 이전 JSP 또는 새 JSP를 표시하려는 경우 변경할 수 없습니다.

답변

0

파트 1을 알고 있으면 매개 변수 newdesign에 해당하는 네임 스페이스를 포함하는 다른 패키지의 적절한 작업으로 리디렉션해야하는 작업으로 매개 변수를 설정할 수 있다고 가정합니다.

url에 사용 된 작업 이름의 접두어는 패키지의 작업을 구분하는 데 사용되는 네임 스페이스를 지정합니다.

동일한 작업 이름과 결과를 갖지만 네임 스페이스에 따라 다른 위치를 가진 모듈이 여러 개있는 경우 고유 한 네임 스페이스가있는 다른 패키지에서 구성해야합니다. 네임 스페이스 개념을 더 잘 이해할 수 있도록 example이 있습니다.

새로운 디자인으로 가지고있는 모듈만큼 패키지를 구성 할 수 있습니다. 너무 많지 않으면 간단한 예처럼 할 수 있습니다. 그러나 매개 변수에 따라 적절한 네임 스페이스로 전환하는 대신 wildcard mappings을 통해 사용되는 네임 스페이스 패턴에 해당 매개 변수를 추가 할 수 있습니다.

+0

많은 답장을 보내 주셔서 감사합니다. 약 40 개의 액션이 ~ 100 태그를 가지고 있으므로 원본 액션을 업데이트하는 개발자의 코드를 병합하기 때문에 struts 설정을 복제하고 싶지는 않습니다. . JSP를 다시 스킨하기 만하면 세션을 기반으로 '/jsp/admin/login.jdp'대신 '/newdesign/jsp/admin/login.jsp'(예 : /jsp/admin/login.jdp)로 경로를 변경하면됩니다. 변하기 쉬운. 따라서 추가적인 네임 스페이스와 별도의 작업은 바람직한 솔루션이 아닙니다. 그런 '결과'접두사를 전 세계적으로 추가 할 수있는 방법을 알고 있습니까? – user1439173

+0

EL을 통해 태그에 변수를 추가하는 방법을 찾았습니다 - http://mycodefixes.blogspot.co.il/2010/10/struts-2-creating-dynamic-results.html하지만 JSP 내의 <% @ include file = "/ jsp/include.jsp"%>에있는 JSP 경로! 따라서 오래된 스킨이 적용된 JSP와 새 스킨이 적용된 JSP를 함께 사용할 수 있어야합니다. 그래서 나는이 아이디어를 abandaonning. 많은 시간을 내 주셔서 감사합니다. – user1439173

+0

EL은 Strurs2의 잘못된 솔루션이므로 결과에 동적 매개 변수가있을 수 있습니다. include를 사용하면 매개 변수가 될 수있는'