1. 程式人生 > >news_flash新聞快訊專案 Chapter 2

news_flash新聞快訊專案 Chapter 2

在上一章中做了新聞的最基本的CRUD以及環境的基本搭建和配置,本章我們整合頁面以及新增高階查詢和分頁、以及圖片上傳等基本的技術來繼續進行該專案。

1 頁面整合


1)拷貝靜態資源
2)修改樣式、圖片等的路徑
3)首先我們觀察index.html檔案,發現它使用了frameset框架集,大家可以看看下面的主要內容,分析跳轉的過程:

這裡寫圖片描述
system表示struts.xml中的包名稱;main_top就是action的名稱,因此我們需要一個action來處理這個main.html檔案。
因此我們建立MainAction類,然後在application中例項化;

/**
 * 處理主頁面跳轉以及業務邏輯的實現
 */
public class MainAction extends ActionSupport { /** * 跳轉到index.html * @return * @throws Exception */ @Override public String execute() throws Exception { return SUCCESS; } //跳轉到top.html public String top(){ return "top"; } //跳轉到menu.html
public String menu(){ return "menu"; } //跳轉到main.html public String main(){ return "main"; } }

可以看到,方法名和返回值的名稱是相同的,這是為了便利struts.xml中的書寫。
4) 首先是登陸,登陸提交表單後,跳轉到userAction,這個action來處理登陸資訊。
之後跳轉到mainAction,載入頁面,包括選單,主頁面,以及頂部,從index.html可以看出。我們在struts.xml中配置相應的檢視名稱即可。

<?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"></constant>
    <!-- 不需要許可權攔截器攔截的Action -->
    <package name="default"  namespace="/" extends="struts-default">
        <!-- 如果userAction要做登入功能,要放在這個包裡,不能被許可權攔截器攔截  -->
        <action name="user_*" class="userAction" method="{1}">
            <result type="redirectAction">
                <param name="namespace">/system</param>
                <param name="actionName">main</param>
            </result>
        </action>
    </package>
    <!-- 需要許可權攔截器攔截的Action -->
    <package name="system" namespace="/system" extends="struts-default">
        <!-- 如果Action交給spring建立,那這裡class不用寫全限定名,它跟applcationContext.xml裡對應的bean的id保持一致 -->
        <action name="main_*" class="mainAction" method="{1}">
            <result>
                /WEB-INF/views/index.html
            </result>
            <result name="{1}">
                /WEB-INF/views/{1}.html
            </result>
        </action>
    </package>
</struts>

我們再配置userAction,並且也完成例項化,處理登陸,這裡只是作為跳轉,具體登陸功能接下來完成
接下來完成測試,發現跳轉正確。下面是userAction,以及例項化配置

public class UserAction extends ActionSupport{
    @Override
    public String execute() throws Exception {
        return SUCCESS;
    }
}
 <!--mainAction例項-->
    <bean id="mainAction" class="cn.czg.core.web.action.MainAction">

    </bean>
    <!--userAction-->
    <bean id="userAction" class="cn.czg.core.web.action.UserAction">

    </bean>