程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Struts2應用的開發流程,struts2應用流程

Struts2應用的開發流程,struts2應用流程

編輯:JAVA綜合教程

Struts2應用的開發流程,struts2應用流程


Struts2的開發流程

為了能夠在eclipse中使用Struts2在進行開發時,需要根據需要導入一些有關的jar包;

在官網下載相關的壓縮包,這裡下載了兩個:struts-2.3.30-all.zip和struts-2.3.30-docs.zip,解壓到同一個文件夾中。

在eclipse中新建了新的Dymamic Web Project以後,為該項目添加Struts2支持:

1.復制Struts2解壓目錄下struts2-blank.war解壓後WEB-INF\lib目錄下的所有jar包到web項目中的WebContent\WEB-INF\lib下;

2.把這些復制的jar包導入項目中去。

開始使用Struts2開發:

1.在web.xml中定義攔截器攔截用戶請求:

  如果eclipse中生成的Dynamic Web Project中沒有自動生成web.xml文件,可以從Tomcat相關的文件夾中找到一個默認的web.xml文件,把此文件復制到項目的WEB-INF目錄下(不是WEB-INF\lib下)。

  也可以在struts2-blank.war解壓後目錄的WEB-INF下直接復制一個web.xml。

  修改此web.xml文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <!-- 定義核心攔截器 -->
<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> </web-app>

2.定義包含表單數據的JSP頁面:

  寫一個提交請求的JSP頁面,此JSP頁面將會將請求提交給相關的Action類來處理。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ 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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="test_1">
    <s:textfield name="username" key="username"/>
    <s:submit key="login" value="login"/>
</s:form>
</body>
</html>

3.定義處理用戶請求的Action類:

  寫一個與以上JSP關聯的Action類來處理該JSP提交的請求。在eclipse中直接放在在src目錄下即可

package testAction;

import com.opensymphony.xwork2.ActionSupport;

public class Test_1Action extends ActionSupport{
    //定義封裝請求參數的成員變量
    private String username;
    //setter、getter方法
    public void setUsername(String username){
        this.username = username;
    }
    public String getUsername(){
        return this.username;
    }
    //定義處理請求的execute方法
    public String execute()throws Exception{
        if(getUsername()!=null){
            return SUCCESS;
        }else{
            return ERROR;
        }
    }
}

4.編寫物理視圖資源文件:

  為了簡單,我們把物理視圖資源文件直接放在項目的webContent目錄下

  error.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>error page</title>
</head>
<body>
    錯誤頁面!username為空!
</body>
</html>

  welcome.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ 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=UTF-8">
<title>welcome page</title>
</head>
<body>
    登陸成功!
</body>
</html>

5.配置處理用戶請求的Action類並配置Action的處理結果和物理視圖資源的映射關系::

  使得JSP頁面的請求能夠准確找到與此JSP頁面相關的Action類。

  配置Action需要在項目的src目錄下添加struts.xml文件,此文件的默認文件也可以在struts2-blank.war解壓後目錄的WEB-INF\classes下找到,把其修改為如下內容:

<?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.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    
    <package name="test" extends="struts-default">
        <!-- 
            定義了名為test_1的Action;
            處理請求的Action類為testAction.Test_1Action.java
         -->
        <action name="test_1" class="testAction.Test_1Action">
            <!-- 定義邏輯視圖與物理視圖之間的映射關系 -->
            <result name="error">error.jsp</result>
            <result name="success">welcome.jsp</result>
        </action>
    </package>
</struts>

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved