ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**相关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[]数组,可自行处理。