首頁(yè)技術(shù)文章正文

Structs2入門

更新時(shí)間:2018-07-27 來(lái)源:黑馬程序員 瀏覽量:

一、struts2 概述

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

二、struts2 的入門案例

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

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

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

<!-- 導(dǎo)入約束:

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

        struts2-core-2.3.24.jar 中包含一個(gè)名稱為:

        struts-2.3.dtd 的約束文件

-->

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

"struts-2.3.dtd" >

<struts>

   <!-- 請(qǐng)求路徑和執(zhí)行方法的關(guān)系

           package標(biāo)簽:主要的作用是用于分模塊

             name:唯一標(biāo)識(shí)符,同一個(gè)項(xiàng)目,package的名字不可以相同

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

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

   -->

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

      <!--

      action標(biāo)簽:請(qǐng)求路徑和執(zhí)行方法的關(guān)系

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

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

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

       -->

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

        <!-- 視圖映射字符串和視圖路徑的關(guān)系 -->

        <!--

        result:用于配置返回

          name:指定視圖對(duì)應(yīng)的映射字符串

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

         -->

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

      </action>  

   </package>

</struts>


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

<?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 的核心控制器:一個(gè)過(guò)濾器 -->

  <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頁(yè)面(href是指定請(qǐng)求路徑,和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頁(yè)面

<%@ 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>


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

1532653713752_2.jpg
第七步:把項(xiàng)目部署到Tomcat,啟動(dòng)Tomcat,訪問(wèn)index.jsp,點(diǎn)擊say,將返回訪問(wèn)hello.jsp頁(yè)面
1532653723283_3.jpg
1532653783722_4.jpg

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

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!