**相關jsp標簽:**
* 引入js標簽:`<w:script src="/pages/namelist/res/NameList.js"/>`
* 引入css標簽:`<w:link href="/static/resources/css/font.css"/>`
* 圖片標簽:`<w:img src="/pages/portal/res/images/user-img.png"/>`
這三個標簽可以配合Version.jsp對資源進行版本號的設置。
* 設置變量標簽:此標簽相對c:set彌補了很多實用功能
調用單例類里的方法
~~~
<w:set var="common" value="@org.walkframework.base.system.common.Common" />
<input type="text" value="${common.prevMonthFirstDay}" />
~~~
value可以是單例類也可以是spring實例名,注意要以@符號打頭,例如
~~~
<w:set var="commonService" value="@commonService" />
<input type="text" value="${commonService.convertCode2Name('ORDER_STATE','1')}" />
~~~
另外還有種用法,可引用常量類,注意用的是fields屬性而不是var屬性
~~~
<w:set fields="CommonConstants" value="@org.walkframework.base.system.constant.CommonConstants" />
<input type="text" value="${CommonConstants.ACTION_TYPE}" />
~~~
* 引入freemarker組件標簽
引入公共資源文件
`<w:fm path="common/base/resources"/>`
resources.ftl內容
~~~
<#if SpringPropertyHolder.getContextProperty('common_css_path')??>
<link type="text/css" rel="stylesheet" href="${request.contextPath}${SpringPropertyHolder.getContextProperty('common_css_path')}"/>
<#else>
<link type="text/css" rel="stylesheet" href="${request.contextPath}/component/resources/css/common.css"/>
</#if>
<#if SpringPropertyHolder.getContextProperty('comboAble') == 'true'>
<script type="text/javascript" src="${request.contextPath}/component/resources/scripts/seajs/sea-modules/??seajs/seajs/2.2.1/sea.js,seajs/seajs-combo/1.0.1/seajs-combo.js,config.js,jquery/jquery/1.12.4/jquery.js,jquery/jquery/1.12.4/jquery-extend.js,jquery/easyui/1.5/easyloader.sea.js,walk.js,init.js"></script>
<#else>
<script type="text/javascript" src="${request.contextPath}/component/resources/scripts/seajs/sea-modules/seajs/seajs/2.2.1/sea.js"></script>
<script type="text/javascript" src="${request.contextPath}/component/resources/scripts/seajs/sea-modules/config.js"></script>
<script type="text/javascript" src="${request.contextPath}/component/resources/scripts/seajs/sea-modules/jquery/jquery/1.12.4/jquery.js"></script>
<script type="text/javascript" src="${request.contextPath}/component/resources/scripts/seajs/sea-modules/jquery/jquery/1.12.4/jquery-extend.js"></script>
<script type="text/javascript" src="${request.contextPath}/component/resources/scripts/seajs/sea-modules/jquery/easyui/1.5/easyloader.sea.js"></script>
<script type="text/javascript" src="${request.contextPath}/component/resources/scripts/seajs/sea-modules/walk.js"></script>
<script type="text/javascript" src="${request.contextPath}/component/resources/scripts/seajs/sea-modules/init.js"></script>
</#if>
<#if SpringPropertyHolder.getContextProperty('load_custom.config.js') == 'true'>
<script type="text/javascript" src="${request.contextPath}/static/resources/scripts/custom.config.js"></script>
</#if>
~~~
* option標簽
客戶類型,其中LIST_CUST_TYPE為TD_S_STATIC表中定義
~~~
<select id="custType" name="custType" class="w-select2 w180">
<w:options typeId="LIST_CUST_TYPE" isfull="true"/>
</select>
~~~

行業類型,指定service中的方法
~~~
<select id="callingTypeCode" name="callingTypeCode" class="w-select2 w180">
<w:options serviceMethod="optionsService.queryCallingTypeList()" valueItem="CALLING_TYPE_CODE" textItem="CALLING_TYPE"/>
</select>
~~~
optionsService是一個service
~~~
/**
* 下拉列表相關
*
*/
@Service("optionsService")
public class OptionsService extends AppService{
@Resource(name = "sqlSessionDao")
private BaseSqlSessionDao dao;
/**
* 獲取行業類型
* @return
* @throws Exception
*/
public List<?> queryCallingTypeList() {
return dao.selectList("OptionsSQL.queryCallingTypeList");
}
/**
* 獲取行業子類
* @return
* @throws Exception
*/
public List<?> queryCallingSubTypeList(String callingType) {
return dao.selectList("OptionsSQL.queryCallingSubTypeList", callingType);
}
}
~~~
> w:option相關屬性說明:
> serviceMethod: 調用的后臺方法
> valueItem: 加載下拉列表之后option.value,對應查詢出列表中的字段名,對應Options標簽中的key
> textItem: 加載下拉列表之后顯示的列表內容,對應查詢出列表中的字段名,對應Options標簽中的name
> defaultValue: 加載下拉列表之后默認選擇的選項,對應Options標簽中的value
> typeId: 同Options標簽,查詢STATIC表對應的數據
> isfull: 同Options標簽,選擇是否默認添加“全部”下拉選項
* select級聯
客戶大類 :
~~~
<select id="custType" name="custType" class="w-select2 w180">
<w:options typeId="LIST_CUST_TYPE"/>
</select>
~~~
客戶小類 :
~~~
<select id="subCustType" name="subCustType" class="w-select2 w180"
relyon="custType" serviceMethod="commonService.queryStaticListByLike(LIST_SUB_CUST_TYPE, $)"
valueItem="dataId" textItem="dataName" lazyInit="true">
</select>
~~~
> 級聯相關屬性說明:
> relyon: 依賴的select組件的名稱或ID,名稱會默認查詢本form內的指定名稱select組件,查詢不到則按ID查詢
> serviceMethod: 調用的后臺方法
> valueItem: 加載下拉列表之后option.value,對應查詢出列表中的字段名,對應Options標簽中的key
> textItem: 加載下拉列表之后顯示的列表內容,對應查詢出列表中的字段名,對應Options標簽中的name
> defaultValue: 加載下拉列表之后默認選擇的選項,對應Options標簽中的value
> typeId: 同Options標簽,查詢STATIC表對應的數據
> isfull: 同Options標簽,選擇是否默認添加“全部”下拉選項
> lazyInit: 是否延遲加載,判斷是在初始化時加載還是在依賴的下拉框組件變化時才加載
* jsp內容加密標簽,采用des算法加密
~~~
<w:encode key="${util:getAppKey(appId, util:getContextProperty('validation.encode'))}" encode="${util:getContextProperty('validation.encode')}">
${xx.content}
</w:encode>
~~~
* jsp內容解密標簽,對應于w:encode標簽
~~~
<w:decode key="${util:getAppKey(appId, util:getContextProperty('validation.encode'))}">
${xx.encryptedcontent}
</w:encode>
~~~
> 屬性說明:
> key:密鑰
> encode:是否加密,默認加密
* ajaxfileupload ajax異步上傳文件標簽
~~~
<w:ajaxfileupload id="myfile" types="txt|sql|zip|rar" fileIds="1,2,3"/>
~~~

> 屬性說明:
> id:組件ID,必填
> types:限制上傳類型列表,多個以豎線分隔 ,非必填
> limit:限制上傳個數,默認1
> readonly:是否只讀,true|false,默認false
> multiple:是否允許文件多選,true|false,默認false
> fileIds:文件ID列表,可以是字符串,多個以逗號分隔 。可以是List,泛型String,非必填
邏輯:頁面選擇文件后即上傳到主機,并返回文件ID放置頁面隱藏域,文件ID規則為組件ID_fileId,如本例:myfile_fileId。
后臺Controller取出fileId,存入業務表即可。
如:request.getParameter("myfile_fileId"),或inParam.getString("myfile_fileId");
如果上傳了多個文件,這里取到的值是個String[]數組,可自行處理。
- walk簡介
- 核心模塊
- walk-data
- IData
- EntityHelper
- walk-cache
- 緩存管理器
- 緩存對象
- 緩存注解
- walk-batis
- 單表操作
- 批量操作
- 列表/分頁查詢
- 所有方法列表
- sql熱部署
- 二級緩存
- 數據庫方言
- 其他使用技巧
- 實體類生成工具
- walk-mq
- 隊列管理器
- 隊列對象
- 訂閱/發布管理器
- 訂閱器
- 發布器
- walk-shiro
- 用戶認證/授權
- url動態授權/回收
- 分布式會話
- 無狀態會話支持
- walk-base
- 前端基礎框架
- 公共頁面
- 自定義標簽
- 自定義函數
- 組件及工具
- 后端基礎框架
- 基礎結構
- 表單校驗
- 數據導入
- 數據導出
- 上傳下載
- 靜態參數加載器
- 靜態參數翻譯器
- 實體類翻譯器
- sql翻譯器
- 自定義翻譯器
- 靜態參數校驗器
- 分布式任務
- 增刪改查代碼生成器
- walk-restful
- 請求報文
- 返回報文
- 節點翻譯器
- api代碼生成
- walk-activiti
- 接口封裝
- 模型管理
- 流程圖展示
- 集成方法
- walk-console
- 在線會話管理
- 靜態參數表緩存管理
- 緩存管理
- 隊列管理
- 發布/訂閱管理
- walk-boot
- 常用功能
- 持久層操作
- 分布式緩存
- 分布式會話
- 分布式任務
- 前端常用功能
- 后端常用功能
- 工作流封裝
- 多數據源支持
- 關于讀寫分離
- 常用工具類
- 代碼生成工具
- SpringCloud集成
- 阿里edas平臺支持
- 其他
- 開發規約
- 環境要求
- 工程示例
- 工程結構
- web工程
- API工程
- 后臺任務
- 常見問題
- 事務不生效
- 分布式任務不生效
- 事務鎖
- 變更歷史