Java Struts 앱에서 기본 파일 구조 변경
-
09-06-2019 - |
문제
나는 한동안 Struts를 사용하여 작업해 왔지만 마무리 중인 프로젝트에서 템플릿(velocity .vm 파일), 구성(struts.xml, persistence.xml)을 기본 WAR 파일에서 분리하라는 요청을 받았습니다.
다음과 같은 기본 구조가 모두 있습니다.
application |-- 메타-INF -- Some configs are here |-- 웹-INF -- others here | |-- classes | | |-- META-INF | | `-- mypackage | | `-- class-files | `-- lib |-- css `-- 티플 -- Template dir to be relocated
그리고 내 템플릿의 위치와 구성 파일의 위치를 설정하는 방법(아마도 struts.xml에서)에 대한 문서를 찾을 수 없는 것 같습니다.
애플리케이션 서버에서도 구성을 사용해야 할 것 같습니다(Jetty 5.1.14를 사용하고 있습니다).
그렇다면 구성 방법에 대한 정보가 있습니까?
감사해요
템플릿 위치 변경에 관한 모든 것은 템플릿을 디자이너가 액세스할 수 있는 영역에 두는 것입니다. 따라서 수정이 필요한 경우 디자이너는 템플릿을 자신의 컴퓨터에 로드하고 편집하고 다시 업로드할 수 있습니다.나는 이것이 일반적인 시나리오라고 생각합니다.그래서 아마도 내 연구에서 뭔가 빠졌을 것입니다.어쩌면 내가 엉뚱한 곳에 구성하는데 집중하고 있는 건 아닐까...이견있는 사람 ?
해결책
Struts 구성 파일에 대한 귀하의 질문을 올바르게 이해했다면 해당 파일은 web.xml에 지정되어 있습니다.Struts 서블릿 구성 매개변수를 찾으세요.param-value는 로드할 XML 파일의 쉼표로 구분된 목록일 수 있습니다.예:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
WEB-INF/config/struts-config.xml,
WEB-INF/config/struts-config-stuff.xml,
WEB-INF/config/struts-config-good.xml,
WEB-INF/config/struts-config-bad.xml,
WEB-INF/config/struts-config-ugly.xml
</param-value>
</init-param>
...
</servlet>
이것 좀 봐 스트럿츠 가이드 5.3.2에 따라.그리고 그렇습니다. 이는 2.x에도 적용됩니다.
다른 팁
을 위한 지속성.xml, 특히, 지속성 단위를 별도의 JAR에 넣을 수 있으며, 이를 웹 애플리케이션 WAR과 별도로 배포하거나 애플리케이션 서버가 지원하는 항목에 따라 EAR 아카이브에 함께 배포할 수 있습니다.예를 들어 JBoss 매뉴얼에서는 이를 다음과 같이 설명합니다. EJB3 JAR을 사용하여 EAR 배포.
을 위한 struts-config.xml 비표준 위치를 사용하려면 이를 로드하는 Struts 코드를 재정의해야 할 것으로 예상됩니다.
Velocity 템플릿에 대해서는 잘 모르겠습니다.
일반적으로 웹 애플리케이션은 보안상의 이유로 WAR 내에서만 리소스를 로드합니다.사용할 수 있는 다른 기술이 있지만 시도해 보는 것이 더 쉬울 수도 있습니다. 웹렛, 이는 별도의 JAR에서 리소스를 로드할 수 있도록 설계된 프레임워크인 것 같습니다.
당신은 조사해야 velocity.properties
WEB_INF 폴더에 파일을 넣으세요.IMHO 여기에서 변경해야 할 부분이 있습니다. 템플릿 루트 속성 변경 file.resource.loader.path
.
도움이되기를 바랍니다