這篇講講Action, Action是接收并返回數(shù)據(jù)的請求, 它可以自動填充請求參數(shù), 過濾請求.
首先, 你可以先從git上下載該項目
Git地址:https://github.com/huhuanan/m
創(chuàng)建Action類

action類內(nèi)容如下:
//Action注釋, 該類所在的包需要配置到config/mconfig.properties文件中
@ActionMeta(name="testRequestTest",title="請求測試",description="最基礎(chǔ)的Action測試, 繼承m.common.action.Action")
public class RequestTestAction extends Action {
//定義Action接收參數(shù), 并生成get,set方法.
private String name;
private Date date;
private Map<String,String> params;
@DocumentMeta(//接口注釋, 有接口注釋的方法會在后臺的開發(fā)指南的接口中顯示, 方便測試
method=@DocumentMethodMeta(title="測試API",description="一個簡單的接口測試",permission=false,
result="返回json串"),//result返回結(jié)構(gòu)示例,自行編寫
params={
@DocumentParamMeta(name="name",description="名字",type=FieldType.STRING,length=20,notnull=true)
}
)
public JSONMessage testMethod(){//Action可訪問的方法沒有參數(shù), 返回類型最常用的是JSONMessage
JSONMessage result=new JSONMessage();//框架自寫的一個用于返回前臺數(shù)據(jù)的json
try {
result.push("name", "接收到的name:"+name);
result.push("code", 0);
result.push("msg", "測試成功");
} catch (Exception e) {
result.push("code", 1);
result.push("msg", e.getMessage());
}
return result;
}
.....get, set 方法
- action的訪問是以action/開頭的, http://127.0.0.1/action/
action注解的name/無參的方法名, 例如, http://127.0.0.1/action/testRequestTest/testMethod
注: 我部署項目的時候都是修改tomcat的 conf/server.xml, 所以訪問是沒有項目名
在<Host ...>標(biāo)簽塊內(nèi)增加以下代碼
<Context path="" docBase="D:/Workspaces/m/web" debug="0" reloadable="false"></Context>
- action的方法執(zhí)行前, 會過濾該url, 不允許訪問時返回空, 配置文件 config/urlmarker.xml
- 首先按照
<authorization>的配置, 如果符合配置, 則不進(jìn)行下面的過濾, 但需要在Action中判斷權(quán)限, 該設(shè)置適合app調(diào)用. - 判斷請求開始是否已配置到
<redirect>和<enable>, /action/默認(rèn)已加入<enable>中, 所以無需配置. - 判斷 主機(jī)地址和Request Header的Referer屬性是否一致,
- 過濾Request Header的Referer屬性, 除了配置的, 默認(rèn)允許127.0.0.1
啟動項目
打開項目地址http://127.0.0.1/admin
默認(rèn)用戶名密碼 admin 123456
進(jìn)入開發(fā)指南的Action接口

點該接口的測試按鈕

也可查看控制臺打印的信息

這樣一個簡單的action接口就創(chuàng)建完成了.
除了以/action/開始的的請求, 還有以/page/開始的請求, 對應(yīng)classes/page目錄,
jsp頁面不用寫后綴,action也可以返回jsp頁面 (現(xiàn)在已經(jīng)過時了, 如果是需要使用后臺數(shù)據(jù)的動態(tài)頁面, 可以使用,)
除了jsp頁面, 其他的內(nèi)容都可以通過/page/開頭訪問.

訪問路徑: http://127.0.0.1/page/test.html
請求和action就講這些了, 其他使用方式需要在以后的實例中說明, 如果有什么問題或者bug, 可以簡信我.