news_flash新聞快訊專案 Chapter 2
阿新 • • 發佈:2018-11-15
在上一章中做了新聞的最基本的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>