首頁技術文章正文

Structs2入門

更新時間:2018-07-27 來源:黑馬程序員 瀏覽量:

一、struts2 概述

Struts2 是一種基于 MVC (表現(xiàn)層、業(yè)務層、持久層)模式的輕量級 Web 框架,它自問世以來,就受到了廣大 Web 開發(fā)者的 關注,并廣泛應用于各種企業(yè)系統(tǒng)的開發(fā)中

二、struts2 的入門案例

第一步:拷貝 struts2 必備 jar 包到 web 工程的 lib 目錄
1532653703908_1.jpg

第二步:在類的根路徑下創(chuàng)建一個名稱為 struts.xml 的文件,并導入約束和配置(詳細如下)

<?xml version="1.0" encoding="UTF-8"?>

<!-- 導入約束:

        約束的位置:在 struts2 的核心 jar 包中

        struts2-core-2.3.24.jar 中包含一個名稱為:

        struts-2.3.dtd 的約束文件

-->

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"struts-2.3.dtd" >

<struts>

   <!-- 請求路徑和執(zhí)行方法的關系

           package標簽:主要的作用是用于分模塊

             name:唯一標識符,同一個項目,package的名字不可以相同

             extends:繼承,基于繼承其他包的功能。struts-default是框架內(nèi)置的package。

                  如果不繼承會導致,內(nèi)置的功能組件不能使用

   -->

   <package name="default" extends="struts-default">

      <!--

      action標簽:請求路徑和執(zhí)行方法的關系

      name:用于指定請求路徑(url)

      class:指定業(yè)務控制器的類名

      method:指定執(zhí)行的方法

       -->

      <action name="hello_say" class="com.itheima.action.HelloWorldAction" method="say">

        <!-- 視圖映射字符串和視圖路徑的關系 -->

        <!--

        result:用于配置返回

          name:指定視圖對應的映射字符串

                                標簽內(nèi)容:視圖路徑

         -->

        <result name="hello">/hello.jsp</result>

      </action>  

   </package>

</struts>


第三步:在 web.xml 配置 struts2 的核心控制器(一個過濾器)

<?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>crm-annotation</display-name>

  <!-- 配置 struts2 的核心控制器:一個過濾器 -->

  <filter>

    <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

</web-app>


第四步:編寫index.jsp頁面(href是指定請求路徑,和struts.xml的action name一致)

<%@ page language="java" contentType="text/html; charset=UTF-8"

        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>

        <a href="${pageContext.request.contextPath }/hello_say">say</a>

</body>

</html>


第五步:編寫HelloWorldAction.java文件(類路徑和名、方法名、返回值和Structs.xml配置的一致)

package com.itheima.action;

public class HelloWorldAction {

        public String say() {

                System.out.println(this);

                System.out.println("HelloAction 中的 sayHello 方法執(zhí)行了。。。。");

                return "hello";

        }

}


第六步:編寫hello.jsp頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"

    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>

  你好世界!!

</body>

</html>


項目目錄結(jié)構(gòu)如下:

1532653713752_2.jpg
第七步:把項目部署到Tomcat,啟動Tomcat,訪問index.jsp,點擊say,將返回訪問hello.jsp頁面
1532653723283_3.jpg
1532653783722_4.jpg

作者:黑馬程序員javaEE培訓學院
首發(fā):http://java.itheima.com/

分享到:
在線咨詢 我要報名
和我們在線交談!