<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="APP_ID">wx67b***b345f</property>
<property key="PAY_API_SECRET">jE74f***wvZj2</property>
<property key="PAY_MCH_ID">138***02</property>
<property key="SIGN_TYPE">MD5</property>
<property key="PAY_NOTIFY_URL">http://***</property>
</config>
</configs>
參考每個(gè)模塊下相應(yīng)的配置文件示例
配置文件一般以configs作根節(jié)點(diǎn)
其下有多個(gè)config
在代碼中可以根據(jù)config.key來(lái)確定調(diào)用哪個(gè)配置
<configs>
<config key="default">
<property key="KEY">VALUE</property>
</config>
</configs>
anyline-nacos集成了nacos配置中心用來(lái)配置文件集中管理與實(shí)時(shí)同步,
需要在classpath下添加配置文件anyline-nacos.xml
在nacos上創(chuàng)建配置文件時(shí),需要與配置類的CONFIG_NAME值保持一致,如PageNavi.CONFIG_NAME = "anyline-navi.xml"
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<!-- 服務(wù)器地址 -->
<property key="ADDRESS">192.168.9.10</property>
<!-- 端口 默認(rèn)8848 -->
<property key="PORT">8848</property>
<!-- namespace 默認(rèn)public -->
<property key="NAMESPACE">public</property>
<!-- group 默認(rèn) DEFAULT_GROUP -->
<property key="GROUP">DEFAULT_GROUP</property>
<!-- 是否自動(dòng)掃描配置類 默認(rèn)true -->
<property key="AUTO_SCAN">true</property>
</config>
</configs>
對(duì)于多個(gè)環(huán)境配置不同的情況 如生產(chǎn)環(huán)境與測(cè)試環(huán)境與開(kāi)發(fā)環(huán)境
開(kāi)發(fā)環(huán)境多變,生產(chǎn)與測(cè)試相對(duì)固定
為避免開(kāi)發(fā)環(huán)境提交的配置誤覆蓋生產(chǎn)環(huán)境.需要在生產(chǎn)環(huán)境中創(chuàng)建一份以anyline-config-*.xml配置文件
配置文件在開(kāi)發(fā)環(huán)境一般只有一個(gè)完整配置
在測(cè)試和生產(chǎn)環(huán)境會(huì)有其他的配置文件anyline-config-*.xml
系統(tǒng)加載配置文件時(shí)首先加載anyline-config.xml 后加載anyline-config-*.xml
如果有重復(fù)key,anyline-config.xml中的重復(fù)數(shù)據(jù)將會(huì)被覆蓋.
是為了避免項(xiàng)目發(fā)布時(shí),因修改生產(chǎn)環(huán)境配置文件失誤造成的問(wèn)題.
常見(jiàn)如多個(gè)境調(diào)用接口的IP不同,多個(gè)數(shù)據(jù)庫(kù)中的主鍵值不一致
其中在核心配置文件anyline-config.xml中的RELOAD用來(lái)設(shè)置系統(tǒng)多長(zhǎng)時(shí)間重新加載一次配置文件(包括所有配置文件)
//DataRow的key大小寫(xiě)(默認(rèn)大寫(xiě))
DataRow.DEFAULT_KEY_KASE = KeyAdapter.KEY_CASE.LOWER;
//http分頁(yè)參數(shù)-當(dāng)前當(dāng)前第幾頁(yè)(默認(rèn)page)
PageNaviConfig.DEFAULT_KEY_PAGE_NO = "pageNum";
//http分頁(yè)參數(shù)-每頁(yè)多少條(默認(rèn)vol)
PageNaviConfig.DEFAULT_KEY_PAGE_ROWS = "pageSize";
//是否允許前端設(shè)置每頁(yè)多少條(默認(rèn)false)
PageNaviConfig.DEFAULT_VAR_CLIENT_SET_VOL_ENABLE = true;
以anyline-aliyun-sms為例,每個(gè)工具類都會(huì)對(duì)應(yīng)一個(gè)配置類與默認(rèn)實(shí)例化類
如SMSUtil對(duì)應(yīng)SMSConfig與SMSBeanSMSConfig用來(lái)配置帳號(hào)密碼等
SMSBean用來(lái)在系統(tǒng)啟動(dòng)中往Spring上下文中注入一個(gè)默認(rèn)的SMSUtil實(shí)例
SMSUtil就是開(kāi)發(fā)中常用的工具了,如發(fā)送短信、查詢短信接收狀態(tài)、創(chuàng)建短信模板等
其中SMSConfig中的變量可以通過(guò)多種方式設(shè)置
1.配置文件anyline-aliyun-sms.xml(根據(jù)SMSConfig中的靜態(tài)變量CONFIG_NAME = "anyline-aliyun-sms.xml";)
這個(gè)配置文件中可以配置多組帳號(hào)密碼,開(kāi)發(fā)過(guò)程中根據(jù)需要生成針對(duì)不同帳號(hào)的util
一般這樣配置
<configs><config key="default">帳號(hào)、密碼等</config><config key="instance-oa">帳號(hào)、密碼等</config><config key="instance-crm">帳號(hào)、密碼等</config></configs>SMSUtil.getInstance("instance-crm")的方式獲取不同的util
2.如果帳號(hào)無(wú)限多、如開(kāi)發(fā)一個(gè)SAAS平臺(tái),這時(shí)的帳號(hào)密碼會(huì)由不同的租戶或用戶自己設(shè)置,數(shù)據(jù)通常要保存在數(shù)據(jù)中。在運(yùn)行過(guò)程中根據(jù)用戶環(huán)境來(lái)調(diào)用不同的util
在實(shí)例化util前可以通過(guò)
SMSConfig.register("用戶編號(hào)", DataRow)的方式先注冊(cè),其中DataRow中的KEY與配置文件中的KEY相對(duì)應(yīng)
SMSConfig中一般會(huì)提供多個(gè)register的重載
再通過(guò)SMSUtil.getInstance("用戶編號(hào)")的方式獲取util
3.對(duì)于一些簡(jiǎn)單的項(xiàng)目,不想使用配置文件的可以通過(guò)2的方式直接register方式注冊(cè)一個(gè)
也可以設(shè)置SMSConfig中的靜態(tài)變更 DEFAULT_配置文件中的KEY
如DEFAULT_ACCOUNT(對(duì)應(yīng)配置文件中的ACCOUNT)、DEFAULT_PASSWORD(對(duì)應(yīng)配置文件中的PASSWORD)
這樣在系統(tǒng)啟動(dòng)后會(huì)在Spring上下文中默認(rèn)注入一個(gè)SMSUtil實(shí)例
4.現(xiàn)有的項(xiàng)目配置文件中設(shè)置,參考SMSBean中的屬性
@Value("${anyline.aliyun.sms.key:}") private String ACCESS_KEY;
這樣在系統(tǒng)啟動(dòng)后會(huì)在Spring上下文中默認(rèn)注入一個(gè)SMSUtil實(shí)例
5.nacos配置中心
需要添加依賴anyline-nacos
anyline-nacos本身也有配置文件用來(lái)指定NACOS配置中心地址以及namespace/group
可以通過(guò)anyline-nacos.xml配置文件設(shè)置
如果是spring boot項(xiàng)目則按spring boot方式來(lái)配置如 nacos.config.server-addr
如果是spring cloud項(xiàng)目則按spring cloud方式來(lái)配置如 spring.cloud.nacos.config.server-addr
配置好nacos后在nacos中根據(jù) 根據(jù)SMSConfig中的靜態(tài)變量CONFIG_NAME = "anyline-aliyun-sms.xml" 命名nacos中的dataId
所有org.anyline包下的配置文件都統(tǒng)一實(shí)現(xiàn)了nacos的讀取,實(shí)際是由父類AnylineConfig實(shí)現(xiàn)
如org.anyline.aliyun.oss.util.OSSConfig
public class OSSConfig extends AnylineConfig
每個(gè)類中有一個(gè)CONFIG_NAME 屬性用來(lái)指定配置文件名稱
public static String CONFIG_NAME = "anyline-aliyun-oss.xml";
接入過(guò)程:
1.依賴anyline-nacos
<dependency>
<groupId>org.anyline</groupId>
<artifactId>anyline-nacos</artifactId>
</dependency>
2.在項(xiàng)目中創(chuàng)建anyline-nacos.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<!-- 服務(wù)器地址,一般使用內(nèi)網(wǎng)IP,如果對(duì)外開(kāi)放注意訪問(wèn)控制,如利用nginx設(shè)置IP白名單 -->
<property key="ADDRESS">IP或域名</property>
<!-- 端口 默認(rèn)8848 -->
<property key="PORT">80</property>
<!-- 沒(méi)有特別需要,以下5個(gè)不需要配置 -->
<!-- namespace 默認(rèn)為空,會(huì)讀取public空間下的配置文件,默認(rèn)namespace是空不需要配置這項(xiàng),而不是配置成public -->
<property key="NAMESPACE">2c9cbc2f-9ad0-4050-848f-70765b3ddd12</property>
<!-- group 默認(rèn) DEFAULT_GROUP -->
<property key="GROUP">DEFAULT_GROUP</property>
<!-- 是否自動(dòng)掃描配置類 默認(rèn)true -->
<property key="AUTO_SCAN">true</property>
<!-- 需要掃描的包,多個(gè)包以逗號(hào)分隔,默認(rèn)只掃描org.anyline和org.anyboot兩個(gè)包 -->
<property key="SCAN_PACKAGE">org.anyline</property>
<!-- 需要掃描的類,多個(gè)類以逗號(hào)分隔 -->
<property key="SCAN_CLASS">org.anyline.entity.PageNaviConfig</property>
</config>
</configs>
注意以上的NAMESPACE不是命名空間的名稱而是一個(gè)8-4-4-4-12格式的ID號(hào)
由于微信API中有一部分接口僅對(duì)白名單IP開(kāi)放,在測(cè)試機(jī)上經(jīng)常會(huì)遇到調(diào)用接口失敗的情況。
所以增加了配置項(xiàng)SERVER_WHITELIST,設(shè)置成與微信公眾平臺(tái)白名稱一致,多個(gè)IP以","分開(kāi),一般在生產(chǎn)環(huán)境不需要設(shè)置,主要是針對(duì)測(cè)試環(huán)境,系統(tǒng)運(yùn)行時(shí)如果檢測(cè)到配置文件中設(shè)置了白名單并且本機(jī)IP不在白名單內(nèi),則遇到僅對(duì)白名單開(kāi)發(fā)的API時(shí)直接跳過(guò),不再嘗試調(diào)用,如獲取access token
微信公眾平臺(tái)白名單IP設(shè)置:
進(jìn)入微信公眾平臺(tái),點(diǎn)擊開(kāi)發(fā)——>基本配置 ,開(kāi)啟微信公眾平臺(tái)的開(kāi)發(fā)者密碼(AppSecret),記住密碼,并保存;(如果沒(méi)有開(kāi)啟,先開(kāi)啟)開(kāi)啟之后,在開(kāi)發(fā)者密碼(AppSecret)的下方會(huì)出現(xiàn)IP白名單;
添加ip白名單,添加調(diào)用微信接口的服務(wù)器的ip地址
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="APP_ID">wx16***21a57</property>
<property key="SIGN_TYPE">RSA</property>
<property key="SERVER_TOKEN">***</property>
<!-- 暫時(shí)與公眾號(hào)回調(diào)一致 -->
<property key="WEB_SERVER">http://***</property>
<property key="OAUTH_REDIRECT_URL">http://***</property>
<property key="PAY_API_SECRET">oaonhd**********ohvottvq</property>
<property key="PAY_MCH_ID">143*****402</property>
<property key="PAY_NOTIFY_URL">http://****/js/hm/pay/ntf/wx_mp</property>
<property key="PAY_CALLBACK_URL"></property>
<property key="PAY_KEY_STORE_FILE">D:\\apiclient_cert.p12</property>
<property key="PAY_KEY_STORE_PASSWORD">111111</property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="APP_ID">wx67***45f</property>
<property key="APP_SECRET">f013***5473a877</property>
<property key="SIGN_TYPE">MD5</property>
<property key="SERVER_TOKEN">any***rg</property>
<property key="PAY_API_SECRET">oaonhd**********ohvpvbozqqayottvq</property>
<property key="PAY_MCH_ID">143*****402</property>
<property key="PAY_NOTIFY_URL">http://****/js/hm/pay/ntf/wx_mp</property>
<property key="PAY_CALLBACK_URL"></property>
<property key="PAY_KEY_STORE_FILE">D:\\apiclient_cert.p12</property>
<property key="PAY_KEY_STORE_PASSWORD">111111</property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="APP_ID">wxc403*******b5f06</property>
<property key="APP_SECRET">2ede1c*********c915f440745df8</property>
<property key="SIGN_TYPE">RSA</property>
<property key="SERVER_TOKEN">haofresh</property>
<property key="WEB_SERVER">http://******</property>
<property key="OAUTH_REDIRECT_URL">http://*******/wap/hm/lg/cb_wx_mp</property>
<property key="PAY_API_SECRET">oaonhd**********ohvpvbozqqayottvq</property>
<property key="PAY_MCH_ID">143*****402</property>
<property key="PAY_NOTIFY_URL">http://****/js/hm/pay/ntf/wx_mp</property>
<property key="PAY_CALLBACK_URL"></property>
<property key="PAY_KEY_STORE_FILE">D:\\apiclient_cert.p12</property>
<property key="PAY_KEY_STORE_PASSWORD">111111</property>
<!-- 支付到銀行卡公鑰文件 -->
<property key="PAY_BANK_RSA_PUBLIC_KEY_FILE"></property>
<property key="SERVER_WHITELIST"></property>
</config>
</configs>
<!-- 多長(zhǎng)時(shí)間加載一次配置文件 (秒),包括核心配置文件與其他配置文件-->
<property key="RELOAD">120</property>
<!-- 存放在servlet context中的key(配置文件熱重載時(shí)不覆蓋當(dāng)前key)(如el表達(dá)式中引用${al.RELOAD})-->
<property key="SERVLET_ATTRIBUTE_KEY">al</property>
<property key="DEBUG">true</property>
<!-- sql 存放根目錄 -->
<property key="SQL_STORE_DIR">/WEB-INF/classes/sql</property>
<!-- 密鑰 文件路徑 -->
<property key="DES_KEY_FILE">/WEB-INF/classes/key.xml</property>
<!-- 國(guó)際化文本存放目錄 -->
<property key="I18N_MESSAGE_DIR">/WEB-INF/classes/message</property>
<!-- 國(guó)際化消息SESSION存放KEY -->
<property key="I18N_MESSAGE_SESSION_KEY">I18N_MESSAGE_SESSION_KEY</property>
<!-- 國(guó)際化消息默認(rèn)語(yǔ)言 -->
<property key="I18N_MESSAGE_DEFAULT_LANG">cn</property>
<!-- 默認(rèn)主鍵 -->
<property key="DEFAULT_PRIMARY_KEY">ID</property>
<!-- 自動(dòng)添加主鍵 -->
<property key="AUTO_CREATE_PRIMARY_KEY">true</property>
<!-- 是否顯示執(zhí)行的SQL -->
<property key="SHOW_SQL">true</property>
<property key="SHOW_SQL_PARAM">true</property>
<property key="SHOW_SQL_WHEN_ERROR">false</property>
<property key="SHOW_SQL_PARAM_WHEN_ERROR">false</property>
<!-- 是否更新NULL列 -->
<property key="IS_UPDATE_NULL_COLUMN">false</property>
<!-- 是否更新空列 -->
<property key="IS_UPDATE_EMPTY_COLUMN">false</property>
<!-- 生成主鍵的存儲(chǔ)過(guò)程 按3個(gè)輸入?yún)?shù)的格式:表,列,其他-->
<property key="AUTO_CREATE_PRIMARY_KEY">true</property>
<property key="CREATE_PRIMARY_KEY_PROCEDURE">PROC_CREATE_PRIMARY</property>
<!-- 模板文件目錄 -->
<property key="TEMPLET_FILE_PATH_WEB">/WEB-INF/web/home/template/default.jsp</property>
<property key="TEMPLET_FILE_PATH_WAP">/WEB-INF/def/wap/common/templet.jsp</property>
<!-- fail文件路徑 -->
<property key="FAIL_FILE_PATH">/WEB-INF/def/web/common/error/fail.jsp</property>
<!-- error文件路徑 -->
<property key="ERROR_FILE_PATH">/WEB-INF/def/web/common/error/error.jsp</property>
<!-- 是否啟用(一級(jí))緩存 -->
<property key="IS_USE_CACHE">true</property>
?key.xml設(shè)置加密解密密鑰,第1個(gè)為項(xiàng)目正在使用的默認(rèn)密鑰,
其他的為歷史密鑰,主要解密搜索引擎快照中或收藏中的的密文.
(通過(guò)第1組密鑰解密失敗后,會(huì)依次嘗試其他密鑰)
key.xml中 密鑰文件一般不修改,應(yīng)該新添加一組配置,把原來(lái)默認(rèn)的密鑰放在后面的位置.
version長(zhǎng)度不可多于3位
如果刪除或修改密鑰,有可能造成通過(guò)搜索引擎快照連接過(guò)來(lái)的訪問(wèn)解密失敗.
在新添加了默認(rèn)密鑰一段時(shí)間后,如果確定引擎中已更新至最新版本可以刪除歷史密鑰,以提高解密速度.?
<!--?xml version="1.0" encoding="UTF-8"?-->
<keys>
<!-- 第一個(gè)為默認(rèn)密鑰,之后為歷史密鑰(主要解密搜索引擎快照) -->
<!-- 密鑰版本號(hào)長(zhǎng)度<=3 -->
<key version="v01">
<!-- 默認(rèn)密鑰 -->
<des-key>5****6d9</des-key>
<!-- URL參數(shù)密鑰 -->
<des-key-param>@#CF***(*7#</des-key-param>
<!-- URL參數(shù)名密鑰 -->
<des-key-param-name>@***$%#</des-key-param-name>
<!-- URL參數(shù)值密鑰 -->
<des-key-param-value>@#)_UI%097#</des-key-param-value>
<!-- 默認(rèn)前綴 -->
<des-prefix></des-prefix>
<!-- URL參數(shù)前綴 -->
<des-prefix-param>p</des-prefix-param>
<!-- URL參數(shù)名前綴 -->
<des-prefix-param-name>k</des-prefix-param-name>
<!-- URL參數(shù)值前綴 -->
<des-prefix-param-value>v</des-prefix-param-value>
</key>
</keys>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="ACCOUNT">server@anyline.org</property>
<property key="USERNAME">anyline</property>
<property key="PASSWORD">tySb6ZK******5SXXPNZhg</property>
<property key="PROTOCOL">smtp</property>
<property key="HOST">smtp.anyline.org</property>
<property key="PORT">25</property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="APP_ID">101***22</property>
<property key="API_KEY">bd7f56f0***822566</property>
<!-- 登錄成功回調(diào)url 保持與QQ互聯(lián)(https://connect.qq.com/manage.html)對(duì)應(yīng)的APP網(wǎng)站回調(diào)域一致 -->
<property key="OAUTH_REDIRECT_URL">http://***</property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="APP_ID">wx67b***b345f</property>
<property key="PAY_API_SECRET">jE74f***wvZj2</property>
<property key="PAY_MCH_ID">138***02</property>
<property key="SIGN_TYPE">MD5</property>
<property key="PAY_NOTIFY_URL">http://***</property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="APP_KEY"></property>
<property key="MASTER_SECRET"></property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config>
<property key="HOST">https://a1.easemob.com</property>
<property key="APP_KEY">1118***uo</property>
<property key="ORG_NAME">111***5170</property>
<property key="APP_NAME">***</property>
<property key="CLIENT_ID">YXA***5LujQ</property>
<property key="CLIENT_SECRET">YXA6*****CilUFKxP2jl-wE</property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="KEY">3b9371b483******c219522fdc</property>
<property key="TABLE_ID">5937******ab517b6a</property>
<property key="PRIVATE_KEY">72c5c*****4144682</property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<!-- 申請(qǐng)地址:https://ak-console.aliyun.com -->
<property key="ACCESS_KEY"></property>
<property key="ACCESS_SECRET"></property>
<property key="SMS_SIGN"></property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="ACCESS_ID"></property>
<property key="ACCESS_SECRET"></property>
<property key="ENDPOINT">oss-cn-shanghai.aliyuncs.com</property>
<property key="BUCKET">alcdn</property>
<!-- 生成的密鑰多長(zhǎng)時(shí)間有效 -->
<property key="EXPIRE_SECOND">300</property>
<!-- 默認(rèn)文件目錄 -->
<property key="DIR"></property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<property key="APP_ID">wx16***21a57</property>
<property key="SIGN_TYPE">RSA</property>
<property key="SERVER_TOKEN">***</property>
<!-- 暫時(shí)與公眾號(hào)回調(diào)一致 -->
<property key="WEB_SERVER">http://***</property>
<property key="OAUTH_REDIRECT_URL">http://***</property>
<property key="PAY_API_SECRET">oaonhd**********ohvottvq</property>
<property key="PAY_MCH_ID">143*****402</property>
<property key="PAY_NOTIFY_URL">http://****/js/hm/pay/ntf/wx_mp</property>
<property key="PAY_CALLBACK_URL"></property>
<property key="PAY_KEY_STORE_FILE">D:\\apiclient_cert.p12</property>
<property key="PAY_KEY_STORE_PASSWORD">111111</property>
</config>
</configs>
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<config key="default">
<!-- 第一頁(yè) -->
<property key="STYLE_BUTTON_FIRST">第一頁(yè)</property>
<!-- 上一頁(yè) -->
<property key="STYLE_BUTTON_PREV">上一頁(yè)</property>
<!-- 下一頁(yè) -->
<property key="STYLE_BUTTON_NEXT">下一頁(yè)</property>
<!-- 最后頁(yè) -->
<property key="STYLE_BUTTON_LAST">最后頁(yè)</property>
<!-- 數(shù)據(jù)統(tǒng)計(jì)格式 -->
<property key="STYLE_STAT_FORMAT"></property>
<!-- 查詢無(wú)內(nèi)容提示 -->
<property key="STYLE_DATA_EMPTY"></property>
<!-- 最后一頁(yè)提示 -->
<property key="STYLE_PAGE_OVER"></property>
<!-- 下標(biāo)數(shù)量 -->
<property key="VAR_PAGE_RANGE">5</property>
<!-- 顯示上一頁(yè)下一頁(yè) -->
<property key="VAR_SHOW_BUTTON">true</property>
<!-- 顯示下標(biāo) -->
<property key="VAR_SHOW_INDEX">true</property>
<!-- 顯示下標(biāo)省略符 1...5,6,7,8,9...20 -->
<property key="VAR_SHOW_INDEX_ELLIPSIS">true</property>
<property key="STYLE_INDEX_ELLIPSIS">...</property>
<!-- 顯示數(shù)據(jù)統(tǒng)計(jì) -->
<property key="VAR_SHOW_STAT">true</property>
<!-- 跳轉(zhuǎn)到 -->
<property key="VAR_SHOW_JUMP">false</property>
<!-- 加載更多格式 -->
<property key="STYLE_LOAD_MORE_FORMAT">加載更多</property>
<property key="STYLE_FILE_PATH">//www.anyline.org/plugin/navi/navi.css</property>
<property key="SCRIPT_FILE_PATH">//www.anyline.org/plugin/navi/navi.js</property>
<!-- 每頁(yè)多少條 -->
<property key="VAR_PAGE_DEFAULT_VOL">10</property>
<!-- 每頁(yè)最多可設(shè)置顯示多少條 -->
<property key="VAR_PAGE_MAX_VOL">100</property>
<!-- 是否允許前端設(shè)置每頁(yè)多少條 -->
<property key="VAR_CLIENT_SET_VOL_ENABLE">true</property>
<!-- 用戶選擇每頁(yè)多少條 -->
<!-- STYLE_PAGE_VOL與STYLE_PAGE_VOL_NUMBERS 會(huì)相互覆蓋 (以配置文件后設(shè)置的為準(zhǔn)) -->
<property key="STYLE_PAGE_VOL"><select onchange=''_navi_change_vol({navi-conf})'' id=''navi_vol_set_{navi-conf-key}'' class=''navi-vol-set''><option value=''10''>10 條/頁(yè)</option><option value=''20''>20 條/頁(yè)</option><option value=''30''>30 條/頁(yè)</option><option value=''50''>50 條/頁(yè)</option><option value=''100''>100 條/頁(yè)</option></select></property>
<!-- 生成的select.class -->
<property key="VAR_PAGE_VOL_CLASS">navi-vol-set</property>
<!-- 顯示位置 last:最后,page:頁(yè)標(biāo)之后-->
<property key="VAR_PAGE_VOL_INDEX">last</property>
<!-- 生成select的option -->
<property key="VAR_PAGE_VOL_NUMBERS">10,20,30,50,100</property>
<!-- 統(tǒng)計(jì)樣式 -->
<property key="STYLE_STAT_FORMAT"><div class=''navi-summary''>共<span class=''navi-total-row''>{totalRow}</span>條 第<span class=''navi-cur-page''>{curPage}</span>/<span class=''navi-total-page''>{totalPage}</span>頁(yè)</div></property>
</config>
</configs>
更多建議: