스트럿츠2
Struts2는 WebWork2를 기반으로 개발되었습니다. struts1과 마찬가지로 Struts2도 MVC 프레임워크에 속합니다. 하지만 모두가 주의해야 할 점은 Struts2와 struts1의 이름 차이는 그리 크지 않지만 Struts2와 struts1의 코딩 스타일은 거의 다르다는 것입니다. 이제 우리는 struts1을 가지게 되었는데, 왜 struts2를 시작해야 할까요? 주로 struts2에는 다음과 같은 장점이 있기 때문입니다.
1>소프트웨어 설계 측면에서 Struts2는 Struts1 애플리케이션이 ServletAPI 및 strutsAPI에 의존하지 않는 것처럼 ServletAPI 및 strutsAPI와 밀접하게 결합되어 있지 않습니다. Struts2의 이 디자인은 비침입적 디자인인 반면 Struts1은 침입적 디자인입니다.
publicclassOrderListActionextendsAction{
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequest요청,HttpServletResponse응답)
throwsException{
}
}
2>Struts2는 권한 차단과 같은 기능을 구현하기 위해 AOP 프로그래밍에 사용할 수 있는 인터셉터를 제공합니다.
3>Strut2는 유형 변환기를 제공하므로 특수 요청 매개변수를 필요한 유형으로 변환할 수 있습니다. Struts1에서 동일한 기능을 달성하려면 Struts1의 기본 구현인 BeanUtil에 유형 변환기를 등록해야 합니다.
4>Struts2는 JSP, freeMarker, Velocity 등과 같은 다양한 프리젠테이션 계층 기술을 지원합니다.
5> Struts2의 입력 검증은 Struts1의 장기적인 문제점을 해결하는 지정된 방법을 검증할 수 있습니다.
6>글로벌 범위, 패키지 범위 및 작업 범위에서 국제화된 리소스 파일 관리 구현을 제공합니다.
Struts2 개발 환경 설정
1. Struts2 애플리케이션 개발에 필요한 jar 파일 찾기
Struts2 개발에 필요한 최소 jar 파일
struts-core-2.xxjar: Struts2 프레임워크 코어 클래스 라이브러리
xwork-2.xxjar: XWork 클래스 라이브러리, Struts2가 그 위에 구축되었습니다.
ognl-2.6.jar: 이미지 탐색 언어(ObjectGraphNavigationLanguage)의 경우 Struts2 프레임워크는 이를 통해 객체 속성을 읽고 씁니다.
freemarker-2.3.x.jar: Struts2 UI 레이블 템플릿은 freeMarker를 사용하여 작성됩니다.
commons-logging-1.1.x.jar: ASF가 생성한 로그 패키지입니다. Struts2 프레임워크는 Log4J 및 JDK1.4+ 로깅을 지원하기 위해 이 로그 패키지를 사용합니다.
commons-filteupload-1.2.1.jar 파일 업로드 구성요소, 버전 2.1.6 이후에 파일을 추가해야 합니다.
2. Struts2 구성 파일 작성
Struts2의 기본 구성 파일은 struts.xml입니다. 이 파일은 WEB-INF/classes에 저장되어야 합니다. 이 파일의 구성 템플릿은 다음과 같습니다.
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEstrutsPUBLIC".//ApatcheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apatche.org/dtds/struts-2.0.dtd">
<스트럿츠>
</struts>
3. Web.xml에 Struts2MVC 프레임워크 시작 구성 추가
struts1.x에서는 Struts 프레임워크가 Servlet을 통해 시작됩니다. struts2에서 struts 프레임워크는 Filter를 통해 시작됩니다. web.xml의 구성은 다음과 같습니다.
<필터>
<filter-name>struts2</filter-name>
<filter-class>org.apatche.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!--Struts2.1.3부터 다음 FilterDispatcher는 더 이상 사용되지 않는 것으로 표시되었습니다.
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>-->
</filter>
<필터=매핑>
<filter-name>struts2</filter-name>
<url-패턴>/*<url-패턴>
</필터 매핑>
StrutsPerpareAndExecuteFilter의 init() 메소드에서 클래스 경로의 기본 구성 파일 struts.xml을 읽어 초기화 작업을 완료합니다.
Struts.xml 구성의 패키지 소개
<packagename="itcast"namespace="/test"extends="struts-defult">
<actionname="helloworld"class="cn.itcast.action.HelloWorldAction"method="execute">
<resultname="success">/WEB-INF/page/hello.jsp</result>
</액션>
</패키지>
개발에 필요한 jar 파일을 찾으려면 압축을 풀어야 합니다: struts-2.3.8-all.gz
또는 struts-2.3.8-apps.gz는 다음과 같이 struts-2.3.8-all/struts-2.3.8/apps에서 파일을 찾습니다.
빈 프로젝트 struts2-blank가 제공되며, 이 프로젝트에서 struts2를 개발할 수 있습니다.
개발 과정에서 다른 jar 파일의 지원이 필요한 경우 어떻게 해야 합니까?
/struts-2.3.8-all/struts-2.3.8/lib에서 해당 jar 파일을 찾아야 합니다.
struts2-blank.war 프로젝트의 압축을 푸는 방법 - Tomcat의 webapps에 복사하고 Tomcat을 시작하세요.
apache-tomcat/bin에서 start.bat를 찾아 클릭하여 시작하세요.
관찰하다:
브라우저 IE를 열 수 있습니다
http://localhost:8080/struts2-blank를 입력하세요.
압축이 풀린 jar 파일 찾기: apache-tomcat/webapps/struts2-blank/WEB-INF/lib
버그 기록:
1. java.net.BindException:주소가 이미 사용 중임:JVM_Bind
분석: 사용 중인 Tomcat이 두 번째 또는 n번 시작되기 전에 종료되지 않아 버그가 발생합니다.
해결책:
시작된 Tomcat을 닫으십시오.
HTTPStatus404-/demo/servlet/demo.do
분석: 요청한 URL을 찾을 수 없습니다: servlet/demo.do
해결책:
URL이 존재하는지 확인하세요. 존재하지 않는 경우 업체에 따라 추가하세요.
3.
작업 이름 데모에 대한 작업 지도가 없습니다.
분석: 해당 데모 작업을 서버 측에서 찾을 수 없습니다.
데모.액션
/csdn/demo.action
유일한 프롬프트: 데모를 찾을 수 없음
/csdn에서 디모션을 찾을 수 없습니다.
벌레
actioncom.opensymphony.xwork2.ActionSupportandresultsuccess에 대해 정의된 결과가 없습니다.