02 April 2017

Struts 2 Framework: Tiles plugin JSP template framework tái sử dụng mã HTML trên Struts 2 Framework Eclipse

Ở bài này chúng ta làm quen với Tiles template trên IDE Eclipse
Trước hết cần Download project này và import và máy các bạn cho nhanh
=========================
////// HƯỚNG DẪN IMPORT \\\\\\\
=========================
Mở eclipse tạo mới Project Dynamic Web Project tên tùy ý
Chọn Tomcat 7 chú ý nếu chưa có các bạn xem phía dưới có link tải 
Chọn next cho tới phần như ảnh dưới

Tạo xong project ta click phải chuột vào project và chọn import
 

Import xong tiếp theo là cấu hình như hình dưới
Download tomcat 7 nếu máy tính của bạn chưa có
Tìm JRE 8 trong thư mục Java của Ổ chương trình của máy
Sử dụng Tomcat 7 và JRE 8
Thêm một thư viện đặt tên là struts2.5.1 tên này tùy bạn đặt
Download và đưa vào trong thư viện struts2.5.1 của bạn mới tạo
Cấu hình thêm để server có thể hoạt động được
Chú ý sử dụng Java 1.7 
Cấu trúc của project như sau


web.xml
Java Web 2017
<?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" 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>Struts2_Tiles</display-name>
    <welcome-file-list>
        <welcome-file></welcome-file>
    </welcome-file-list>
    <context-param>
        <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
        <param-value>
            /WEB-INF/tiles.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>
            org.apache.struts2.tiles.StrutsTilesListener
        </listener-class>
    </listener>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
struts.xml
Java Web 2017
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="default" extends="struts-default" namespace="/">
        <!-- Khai báo thư viện tiles -->
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>
        <!-- Default vào trang login -->
        <action name="">
            <result type="tiles">login.def</result>
        </action>
        <!-- Click vào loging và tiles goi login.def -->
        <!-- http://localhost:8081/Struts2_Tiles/loging -->
        <action name="loging">
            <result type="tiles">login.def</result>
        </action>

        <action name="register">
            <result type="tiles">register.def</result>
        </action>
    </package>
</struts>
tiles.xml
Java Web 2017
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
        "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
        "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">

<tiles-definitions>

    <definition name="baseLayout" template="/baseLayout.jsp">
        <put-attribute name="title" value="Tiles Sample" />
        <put-attribute name="header" value="/header.jsp" />
        <put-attribute name="menu" value="/menu.jsp" />
        <put-attribute name="body" value="/body.jsp" />
        <put-attribute name="footer" value="/footer.jsp" />
    </definition>
    <!-- Sau khi đc goi login.def đưa ra quyết định chuyển hướng tới page login.jsp -->
    <definition name="login.def" extends="baseLayout">
        <put-attribute name="title" value="Login Form" />
        <put-attribute name="body" value="/login.jsp" />
    </definition>
    <!--Tên login.def hoặc register.def tùy ý đặt>
    <definition name="register.def" extends="baseLayout">
        <put-attribute name="title" value="Register Form" />
        <put-attribute name="body" value="/register.jsp" />
    </definition>

</tiles-definitions>
baseLayout.jsp
Java Web 2017
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title><tiles:insertAttribute name="title" /></title>
    </head>
    <body>
        <table width="900" cellspacing="0" align="center">
            <tr>
                <td colspan="2" bgcolor="#00a333"><tiles:insertAttribute  name="header" /></td>
            </tr>
             <tr>
                <td width="150" valign="top" bgcolor="#559900"><tiles:insertAttribute name="menu" /></td>
                <td width="750" valign="middle" align="center"><tiles:insertAttribute name="body" /></td>
            </tr>
            <tr>
                <td colspan="2" height="70" bgcolor="#00a333"><tiles:insertAttribute name="footer" /></td>
            </tr>
        </table>
    </body>
</html>
header.jsp
Java Web 2017

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
        <style>
            a {
                color: #FFF;
                text-decoration: none;
            }
        </style>
    </head>
    <body>
        <img alt="banner" src="images/bg.png" width="100%" />
        <h2 align="center">
            <a href="#">Home</a> | <a href="#">Contact</a> | <a href="#">Login</a>
        </h2>
    </body>
</html>
menu.jsp
Java Web 2017
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
        <a href="loging">Login</a>
        <br />
        <a href="register">Register</a>
        <br />
    </body>
</html>
footer.jsp
Java Web 2017
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
        <title>Insert title here</title>
    </head>
    <body>
        <h4 align="center">Copyright © 2017 The Gioi Giai Ma | Powered by Google</h4>
    </body>
</html>
login.jsp
Java Web 2017
<%@ 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>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
    <s:form action="login.action" method="POST">
        <s:textfield name="userId" label="Login Id" />
        <br>
        <s:password name="password" label="Password" />
        <br>
        <s:submit value="Login" align="center" />
    </s:form>

</body>
</html>
register.jsp
Java Web 2017
<%@ 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>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
    <s:form action="process">

        <s:textfield name="personBean.firstName" label="First name" />
        <s:textfield name="personBean.lastName" label="Last name" />
        <s:textfield name="personBean.email" label="Email" />
        <s:textfield name="personBean.age" label="Age" />
        <s:radio list="{'Male','Female'}" name="personBean.gender"
                 label="Gender"></s:radio>
        <s:checkboxlist name="personBean.hobbies" label="Hobbies"
                        list="{'Game','Tennis','Sport','Reading','Swiming'}"></s:checkboxlist>

        <s:submit />

    </s:form>
</body>
</html>

0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang