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 주석 유형 .