Thẻ bean trong Struts 2
Thẻ bean, là một sự kết hợp của thẻ set và push, cho phép bạn tạo một instance mới của một đối tượng và sau đó thiết lập các giá trị của các biến. Sau đó, nó làm cho bean này có sẵn trong ValueStack, để mà nó có thể được sử dụng trông JSP page.
Thẻ bean yêu cầu một Java Bean để làm việc cùng với nó. Vì thế, các qui tắc của Java Bean chuẩn nên được tuân theo. Đó là, bean nên có một constructor mà không có tham số nào. Tất cả thuộc tính bạn muốn trưng bày và sử dụng nên có các phương thức getter và setter.
Trong chương này, chúng ta sử dụng lớp Counter trong util package. Lớp Counter này là một bean mà có thể được sử dụng để theo dấu một counter. Chúng ta sẽ chỉ sửa đổi HelloWorld.jsp file và giữ các file còn lại không đổi.
Tạo lớp Action
package com.vietjack.struts2; public class HelloWorldAction{ private String name; public String execute() throws Exception { return "success"; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Tạo các thành phần View
HelloWorld.jsp có nội dung sau:
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Hello World</title> </head> <body> <s:bean name="org.apache.struts2.util.Counter" var="counter"> <s:param name="first" value="20"/> <s:param name="last" value="25" /> </s:bean> <ul> <s:iterator value="#counter"> <li><s:property /></li> </s:iterator> </ul> </body> </html>
Trong ví dụ này, chúng ta đang khởi tạo một instance mới của org.apache.struts2.util.Counter bean. Sau đó chúng ta thiết lập thuộc tính đầu tiên là 20 và thuộc tính cuối là 25. Nghĩa là counter sẽ có các giá trị là 20, 21, 22, 23, 24, và 25.
employees.jsp với nội dung:
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>Employees</title> </head> <body> <p>Mot vi du cua the include: </p> <s:include value="HelloWorld.jsp"/> </body> </html>
Tạo các file cấu hình
struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="helloworld" extends="struts-default"> <action name="hello" class="com.vietjack.struts2.HelloWorldAction" method="execute"> <result name="success">/HelloWorld.jsp</result> </action> <action name="employee" class="com.vietjack.struts2.Employee" method="execute"> <result name="success">/employee.jsp</result> </action> </package> </struts>
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> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
Bây giờ bạn chạy ứng dụng và kiểm tra kết quả.