Thẻ include trong Struts 2
Thẻ include trong Struts 2 là tương tự như thẻ include trong JSP và nó hiếm khi được sử dụng. Chúng ta đã thấy cách để bao output của một action vào trong một jsp page bởi sử dụng thẻ <s:action>. Thẻ <s:include> chỉ hơi khác một chút. Nó cho phép bạn bao output của một jsp, servlet hoặc bất cứ resource khác vào trong một jsp. Nói chung, nó giống hệt như thẻ <jsp:include>, nhưng nó cho phép bạn truyền các tham số tới file được bao và nó cũng là một phần của Struts Framework.
Ví dụ dưới đây minh họa cho bạn cách bao output của HelloWorld.jsp vào trong employee.jsp. Trong trường hợp này, phương thức của action trong HelloWorldAction.java sẽ không được triệu hồi, khi chúng ta trực tiếp bao jsp đó.
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> <h2>Vi du cua the generator</h2> <h3>Rainbow bao gom cac mau:</h3> <s:generator val="%{'Violet,Indigo,Blue, Green,Yellow,Orange,Red '}" count="7" separator=","> <s:iterator> <s:property /><br/> </s:iterator> </s:generator> </body> </html>
employees.jsp với nội dung sau:
<%@ 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ả.