摘要:那么后綴一定要寫如果配置后綴為。不允許直接訪問資源什么情況不配置即處理的答案當只是需要跳轉(zhuǎn)到下資源的時候。
前言
上篇Struts博文已經(jīng)講解了Struts的開發(fā)步驟以及執(zhí)行流程了.....對Struts的配置文件有了了解.....本博文繼續(xù)講解Struts在配置的時候一些值得要學習的細節(jié)...
通配符 為什么要學習通配符在講解通配符之前,我們來看一下需求.....
現(xiàn)在我的Action中有兩個方法,處理登陸和處理注冊:
public class PrivilegeAction extends ActionSupport { public String login() { System.out.println("我是登陸"); return "success"; } public String register() { System.out.println("我是注冊"); return "success"; } }
因此,我們就需要在struts.xml文件中配置兩個action節(jié)點
/index.jsp /index.jsp
現(xiàn)在我們發(fā)現(xiàn):它們僅僅只有訪問路徑和方法的名稱是不一樣的....但是這卻要多配置一個action節(jié)點,會造成浪費!
于是乎通配符就應(yīng)運而生了...
使用通配符改造沒有通配符之前,我們是需要配置兩個action的...有了通配符,我們是這樣做的:
/index.jsp
解釋一下:
name=privilege_*,我們用了_作為分隔符。*就是我們的通配符
{1},就是代表著第一個通配符
我們來看一下效果:
同理可得,當我們在地址欄訪問login的時候,就會執(zhí)行l(wèi)ogin的方法
Struts中路徑的匹配原則有的時候,我們可能會在package節(jié)點中指定namespace名稱空間,我們在訪問對應(yīng)的資源名稱的時候,就需要在前面加入相對應(yīng)名稱空間的值...
比如:
名稱空間的值為“/user”
/index.jsp
那么在訪問資源的時候,就需要在項目名稱后邊加上名稱空間的值:
現(xiàn)在就有一個很奇怪妙的事情發(fā)生了:在名稱空間和資源路徑的中間可添加任意的路徑
但是呢,不能在名稱空間之前加入不存在的路徑:
其實這就涉及到了Struts中路徑的匹配原則,我就拿隨便拿個路徑來舉例子http://localhost:8080/user/a/a/privilege_login:
首先,Struts會把請求的資源路徑拿到,也就是privilege_login。
然后在看看有沒有/user/a/a這個名稱空間;如果有,就返回結(jié)果
如果沒有,就看看有沒有/user/a這個名稱空間;如果有,就返回結(jié)果
如果沒有,再看看有沒有/user這個名稱空間;如果有,就返回結(jié)果
直到最后,如果都沒有找到,就報錯!
看完這個例子,我們就可以知道為啥在名稱空間和資源路徑的中間可添加任意的路徑,而不能在名稱空間之前加入不存在的路徑....這就是Struts的路徑匹配原則..
Struts常量Struts2默認的訪問后綴是.action......
修改默認訪問路徑有的時候,可能根據(jù)項目的需要...我想后綴名默認并不是.action,那我該怎么辦呢??
我們在jar包上找到它的配置文件...
我們發(fā)現(xiàn)它的默認值是action,,
值得注意的是:兩個逗號并不是多余的
我們不可能是直接修改jar包中的配置文件的,在struts.xml文件中提供了constant節(jié)點供我們修改struts的常量...
前面已經(jīng)說了,兩個逗號并不是多余的。那么直接在配置文件中配置action時,會怎么樣:
也就是說,“,”號能夠匹配空格鍵
舉例子說明:
如果配置后綴為action。那么后綴一定要寫action
如果配置后綴為action,do,。那么后綴可以是action,可以是do,也可以不寫
如果配置后綴為action,,。那么后綴可以是action,可以不寫
Struts常用的常量只有動態(tài)方法調(diào)用是我們沒有接觸過的。
那動態(tài)方法調(diào)用是怎么回事呢???這是樣的:在action節(jié)點不配置method屬性,在地址欄使用資源名稱!方法名的方式去調(diào)用業(yè)務(wù)方法
首先,我們還是來看一個需求:現(xiàn)在我有兩個Action,PrivilegeAction和CategoryAction
PrivilegeAction
public class PrivilegeAction extends ActionSupport { public String login() { System.out.println("我是登陸"); return "success"; } public String register() { System.out.println("我是注冊"); return "success"; } }
CategoryAction
public class CategoryAction extends ActionSupport { public String add() { System.out.println("我是添加"); return "success"; } public String find() { System.out.println("我是查找"); return "success"; } }
在struts.xml文件中配置
/index.jsp /index.jsp
我們發(fā)現(xiàn)一個問題,只要是方法返回值是success,那么就跳轉(zhuǎn)到首頁....如果有大量Action方法返回的都是success,那么就要寫很多很多個result節(jié)點了..
使用跳轉(zhuǎn)全局視圖代碼就可以變成是這樣子了,注意:global-results節(jié)點需要在action節(jié)點的上面
/index.jsp
效果:
Action節(jié)點中的默認配置一份相對完整的action節(jié)點是這樣子的:
method
如果我們不寫method的話,默認執(zhí)行的是execute()方法,execute()方法默認返回值是SUCCESS
public class BBAtion extends ActionSupport { @Override public String execute() throws Exception { System.out.println("我是execute()"); return SUCCESS; } }class
如果不寫class,class默認執(zhí)行的action在struts-default有配置
什么時候會不寫class?就是需要跳轉(zhuǎn)到WEB-INF目錄下的資源的時候.....這就類似與Servlet需要跳轉(zhuǎn)到WEB-INF下的資源。【Tomcat不允許直接訪問WEB-INF資源】
/WEB-INF/index.jsp
如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術(shù)文章,想要獲取更多的Java資源的同學,可以關(guān)注微信公眾號:Java3y
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68723.html
摘要:要是使用到日歷的話,我們想到使用這個日歷類上面僅僅是我個人總結(jié)的要點,如果有錯誤的地方還請大家給我指正。 納稅服務(wù)系統(tǒng)總結(jié) 納稅服務(wù)系統(tǒng)是我第一個做得比較大的項目(不同于javaWeb小項目),該項目系統(tǒng)來源于傳智Java32期,十天的視頻課程(想要視頻的同學關(guān)注我的公眾號就可以直接獲取了) 我跟著練習一步一步完成需求,才發(fā)覺原來Java是這樣用來做網(wǎng)站的,Java有那么多的類庫,頁面...
摘要:前言由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 前言 由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...
摘要:前言前面博文基本把的配置信息講解完了本博文主要講解對數(shù)據(jù)的處理開發(fā)的三種方式在第一次我們寫開發(fā)步驟的時候,我們寫的是繼承著類的為啥我們繼承了類呢下面我就會講解到繼承類我們來看一下干了什么也就是說,如果我們在類中需要用到為我們提供的數(shù)據(jù)校驗等 前言 前面Struts博文基本把Struts的配置信息講解完了.....本博文主要講解Struts對數(shù)據(jù)的處理 Action開發(fā)的三種方式 在第一...
摘要:當你真正到公司里面從事了幾年開發(fā)之后,你就會同意我的說法利用找工作,需要的就是項目經(jīng)驗,項目經(jīng)驗就是理解項目開發(fā)的基本過程,理解項目的分析方法,理解項目的設(shè)計思 Java就是用來做項目的!Java的主要應(yīng)用領(lǐng)域就是企業(yè)級的項目開發(fā)!要想從事企業(yè)級的項目開發(fā),你必須掌握如下要點: 1、掌握項目開發(fā)的基本步驟 2、具備極強的面向?qū)ο蟮姆治雠c設(shè)計技巧 3、掌握用例驅(qū)動、以架構(gòu)為核心的主流開發(fā)...
時間:2017年08月16日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學源碼:無學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 課程目錄 1.ssh知識點回顧 2.搭建ssm開發(fā)環(huán)境 3.struts2整合spring 4.spring整合hibernate 5.案例:使用ssh框架開發(fā)...
閱讀 1207·2021-11-24 11:16
閱讀 3437·2021-11-15 11:38
閱讀 1937·2021-10-20 13:47
閱讀 553·2021-09-29 09:35
閱讀 2202·2021-09-22 15:17
閱讀 1017·2021-09-07 09:59
閱讀 3390·2019-08-30 13:21
閱讀 2912·2019-08-30 12:47