Struts 2-주석
앞서 언급했듯이 Struts는 두 가지 형태의 구성을 제공합니다. 전통적인 방법은struts.xml모든 구성에 대한 파일. 지금까지 튜토리얼에서 많은 예제를 보았습니다. Struts를 구성하는 다른 방법은 Java 5 Annotations 기능을 사용하는 것입니다. Struts 주석을 사용하여Zero Configuration.
프로젝트에서 주석 사용을 시작하려면 다음 jar 파일이 포함되어 있는지 확인하십시오. WebContent/WEB-INF/lib 폴더 −
- struts2-convention-plugin-x.y.z.jar
- asm-x.y.jar
- antlr-x.y.z.jar
- commons-fileupload-x.y.z.jar
- commons-io-x.y.z.jar
- commons-lang-x.y.jar
- commons-logging-x.y.z.jar
- commons-logging-api-x.y.jar
- freemarker-x.y.z.jar
- javassist-.xy.z.GA
- ognl-x.y.z.jar
- struts2-core-x.y.z.jar
- xwork-core.x.y.z.jar
이제에서 사용 가능한 구성을 어떻게 제거 할 수 있는지 살펴 보겠습니다. struts.xml 파일을 작성하고 annotaions로 교체하십시오.
Struts2에서 Annotation의 개념을 설명하려면 Struts2 Validations 장 에서 설명한 검증 예제를 재고해야합니다 .
여기서는 간단한 페이지를 사용하여 이름, 나이가 캡처되는 직원의 예를 살펴보고 ÜSER가 항상 이름을 입력하고 나이가 28 ~ 65 세 사이인지 확인하기 위해 두 가지 유효성 검사를 수행합니다.
예제의 기본 JSP 페이지부터 시작하겠습니다.
메인 페이지 생성
메인 페이지 JSP 파일 작성 index.jsp, 위에서 언급 한 직원 관련 정보를 수집하는 데 사용됩니다.
<%@ page language = "java" contentType = "text/html; charset = ISO-8859-1"
pageEncoding = "ISO-8859-1"%>
<%@ taglib prefix = "s" uri = "/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Employee Form</title>
</head>
<body>
<s:form action = "empinfo" method = "post">
<s:textfield name = "name" label = "Name" size = "20" />
<s:textfield name = "age" label = "Age" size = "20" />
<s:submit name = "submit" label = "Submit" align="center" />
</s:form>
</body>
</html>
index.jsp는 아직 다루지 않은 Struts 태그를 사용하지만 태그 관련 장에서 살펴볼 것입니다. 그러나 지금은 s : textfield 태그가 입력 필드를 인쇄하고 s : submit이 제출 버튼을 인쇄한다고 가정합니다. 우리는 각 태그에 대한 레이블을 생성하는 각 태그에 대해 레이블 속성을 사용했습니다.
보기 만들기
JSP 파일을 사용합니다. success.jsp 정의 된 작업이 반환되는 경우 호출됩니다. SUCCESS.
<%@ page language = "java" contentType = "text/html; charset = ISO-8859-1"
pageEncoding = "ISO-8859-1"%>
<%@ taglib prefix = "s" uri = "/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Success</title>
</head>
<body>
Employee Information is captured successfully.
</body>
</html>
액션 만들기
주석이 사용되는 곳입니다. 액션 클래스를 다시 정의하겠습니다.Employee 주석을 추가 한 다음 validate () 아래와 같이 Employee.java파일. 액션 클래스가ActionSupport 그렇지 않으면 validate 메소드가 실행되지 않습니다.
package com.tutorialspoint.struts2;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.validator.annotations.*;
@Results({
@Result(name = "success", Location = "/success.jsp"),
@Result(name = "input", Location = "/index.jsp")
})
public class Employee extends ActionSupport {
private String name;
private int age;
@Action(value = "/empinfo")
public String execute() {
return SUCCESS;
}
@RequiredFieldValidator( message = "The name is required" )
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@IntRangeFieldValidator(message = "Age must be in between 28 and 65", min = "29", max = "65")
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
이 예에서는 주석을 거의 사용하지 않았습니다. 하나씩 살펴 보겠습니다.
첫째, 우리는 Results주석. 결과 주석은 결과 모음입니다.
결과 주석 아래에는 두 개의 결과 주석이 있습니다. 결과 주석에는name실행 메소드의 결과에 해당합니다. 또한 execute ()의 반환 값에 해당하는 뷰를 제공해야하는 위치도 포함합니다.
다음 주석은 Action주석. execute () 메서드를 장식하는 데 사용됩니다. Action 메서드는 또한 작업이 호출되는 URL 값을받습니다.
마지막으로 두 가지를 사용했습니다. validation주석. 필수 필드 유효성 검사기를 구성했습니다.name 필드 및 정수 범위 유효성 검사기 age들. 유효성 검사를위한 사용자 지정 메시지도 지정했습니다.
구성 파일
우리는 정말로 필요하지 않습니다 struts.xml 구성 파일이므로이 파일을 제거하고 web.xml 파일-
<?xml version = "1.0" Encoding = "UTF-8"?>
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id = "WebApp_ID" version = "3.0">
<display-name>Struts 2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
이제 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 Export > WAR FileWar 파일을 만듭니다. 그런 다음 Tomcat의 webapps 디렉토리에이 WAR을 배포합니다. 마지막으로 Tomcat 서버를 시작하고 URL에 액세스하십시오.http://localhost:8080/HelloWorldStruts2/index.jsp. 다음 화면이 생성됩니다.
이제 필요한 정보를 입력하지 말고 Submit단추. 다음 결과가 표시됩니다-
필요한 정보를 입력하되 From 필드를 잘못 입력하고 이름은 "test", age는 30으로 말하고 마지막으로 클릭합니다. Submit단추. 다음 결과가 표시됩니다-
Struts 2 주석 유형
Struts 2 애플리케이션은 XML 및 Java 특성 구성에 대한 대안으로 Java 5 주석을 사용할 수 있습니다. 다른 카테고리와 관련된 가장 중요한 주석 목록을 확인할 수 있습니다.
Struts 2 주석 유형 .