**相关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>
~~~
![](https://box.kancloud.cn/2bd63e0a84023bca5300bff02a045b98_672x151.png)
行业类型,指定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"/>
~~~
![](https://box.kancloud.cn/2acc983d59b7d409e28a97eccc77d590_484x151.png)
> 属性说明:
> 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工程
- 后台任务
- 常见问题
- 事务不生效
- 分布式任务不生效
- 事务锁
- 变更历史