Sử dụng Annotation trong Struts 2




Struts cung cấp hai mẫu cấu hình. Cách truyền thống là sử dụng struts.xml file cho tất cả cấu hình, và bạn đã thấy trong khá nhiều ví dụ trước. Cách khác là Zero Configuration mà không sử dụng struts.xml. Có hai cách để đạt được Zero Configuration, đó là bởi Convention hoặc bởi Annotation.

Với ví dụ đơn giản về Annotation trong Struts 2, bạn có thể sử dụng 3 Annotations sau:

  • @Action annotation được sử dụng để đánh dấu lớp action.

  • @Results annotation được sử dụng để định nghĩa nhiều result cho một action.

  • @Result annotation được sử dụng để hiển thị một result đơn.

Ví dụ ứng dụng Struts 2 bởi sử dụng Annotations

1. Tạo index.jsp (tùy ý): JSP page này tạo một form bởi sử dụng UI tags để thu thập thông tin liên quan đến tên người dùng.

<%@ taglib prefix="s" uri="/struts-tags" %>

<s:form action="myAction" >
<s:textfield name="name" label="Name" />
<s:submit />
</s:form>

Như đã giải thích trong các chương trước, thẻ s:textfield in một trường input, thẻ s:submit in một nút submit, … và chúng ta sẽ tìm hiểu các thẻ này trong chủ đề Thẻ trong Struts 2.

2. Tạo lớp Action: Lớp action này sử dụng Annotations cho action và result.

RegisterAction.java

package mypack;
import org.apache.struts2.convention.annotation.*;

@Action(value="myAction",results={@Result(name="ok",location="/myResults/result.jsp")})
public class MyAction {
private String name;
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String execute()
{
return "ok";	
}
}

3. Tạo struts.properties file bên trong thư mục src

struts.properties

struts.convention.package.locators=mypack
struts.convention.result.path=/myResults
struts.convention.action.mapAllMatches=true

Tạo result.jsp để hiển thị thông điệp

JSP page này hiển thị tên người dùng.

result.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
Hello, <s:property value="name" /> It is annotated application.