1.ftp增加doLog2.增加subscribeId3.增加compileId查询

This commit is contained in:
zhanghongqing
2018-08-22 22:42:12 +08:00
parent 5932b68c84
commit 8884972507
9 changed files with 285 additions and 32 deletions

View File

@@ -132,7 +132,7 @@ public class BasicProtocolController extends BaseController {
logger.error("基础协议信息保存失败",e);
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
// addMessage(redirectAttributes,e.getMessage());
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
}
@@ -169,7 +169,7 @@ public class BasicProtocolController extends BaseController {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.info("app策略配置下发失败"+e.getMessage());;
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("app策略配置下发失败",e);
@@ -197,7 +197,7 @@ public class BasicProtocolController extends BaseController {
logger.error("基础协议信息保存失败",e);
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
addMessage(redirectAttributes,"delete_failed");

View File

@@ -97,7 +97,7 @@ public class AvContentController extends BaseController {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.error("voip IP信息保存失败",e);
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("voip IP信息保存失败",e);
@@ -117,7 +117,7 @@ public class AvContentController extends BaseController {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.error("voip Account信息保存失败",e);
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("voip Account信息保存失败",e);
@@ -175,7 +175,7 @@ public class AvContentController extends BaseController {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.error("voip IP信息审核失败",e);
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("voip IP信息审核失败",e);
@@ -196,7 +196,7 @@ public class AvContentController extends BaseController {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.error("voip Account信息审核失败",e);
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("voip Account信息审核失败",e);
@@ -221,7 +221,7 @@ public class AvContentController extends BaseController {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.info("VOIP配置下发失败"+e.getMessage());;
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("VOIP配置下发失败",e);
@@ -250,7 +250,7 @@ public class AvContentController extends BaseController {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.info("VOIPAccount配置下发失败"+e.getMessage());;
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("VOIPAccount配置下发失败",e);

View File

@@ -61,7 +61,7 @@ public class FileTransferCfgController extends BaseController{
}
@RequestMapping(value = {"ftpForm"})
@RequiresPermissions(value={"fileTransfer:ftp:config"})
public String ftpForm(Model model,String ids,CfgIndexInfo entity) {
public String ftpForm(Model model,String compileIds,String ids,CfgIndexInfo entity) {
if(StringUtils.isNotBlank(ids)){
entity = fileTransferCfgService.getFtpCfg(Long.parseLong(ids));
initUpdateFormCondition(model,entity);
@@ -74,8 +74,21 @@ public class FileTransferCfgController extends BaseController{
@RequestMapping(value = {"saveFtpCfg"})
@RequiresPermissions(value={"fileTransfer:ftp:config"})
public String saveFtpCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,
CfgIndexInfo entity) {
CfgIndexInfo entity,RedirectAttributes redirectAttributes) {
try {
fileTransferCfgService.saveFtpCfg(entity);
addMessage(redirectAttributes,"save_success");
} catch (Exception e) {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.error("ftp信息保存失败",e);
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("ftp信息保存失败",e);
addMessage(redirectAttributes,"save_failed");
}
}
return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+entity.getFunctionId();
}
@RequestMapping(value = {"ajaxFtpSubList"})
@@ -100,15 +113,45 @@ public class FileTransferCfgController extends BaseController{
}
}
}
//查询关键字
if(cfg.getNtcSubscribeIdCfgList()!=null){
String cfgType = null;
for(NtcSubscribeIdCfg ntc:cfg.getNtcSubscribeIdCfgList()){
if(!ntc.getCfgType().equals(cfgType)){
tabList.add(new String[]{"2",ntc.getCfgType()});
cfgType = ntc.getCfgType();
}
}
}
model.addAttribute("_cfg", cfg);
model.addAttribute("index", index);
model.addAttribute("tabList", tabList);
return "/cfg/fileTransfer/ftpSubList";
}
/**
* 做删除操作
* @param isValid
* @param ids
* @param functionId
* @return
*/
@RequestMapping(value = {"updateFtpCfgValid"})
@RequiresPermissions(value={"fileTransfer:ftp:config"})
public String updateFtpCfgValid(Integer isValid,String ids,Integer functionId) {
public String updateFtpCfgValid(Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) {
try {
fileTransferCfgService.updateFtpCfgValid(isValid,ids,functionId);
addMessage(redirectAttributes,"delete_success");
} catch (Exception e) {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.info("ftp配置删除失败"+e.getMessage());;
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("ftp配置删除失败",e);
addMessage(redirectAttributes,"delete_failed");
}
}
return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+functionId;
}
@RequestMapping(value = {"auditFtpCfg"})
@@ -125,10 +168,17 @@ public class FileTransferCfgController extends BaseController{
entity.setFunctionId(functionId);
try {
fileTransferCfgService.auditFtpCfg(entity,isAudit);
addMessage(redirectAttributes,"audit_success");
} catch (MaatConvertException e) {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.info("ftp配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
logger.info("ftp配置下发失败"+e.getMessage());;
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
logger.error("ftp配置下发失败",e);
addMessage(redirectAttributes,"audit_failed");
}
}
}
return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+functionId;

View File

@@ -23,6 +23,7 @@
<result column="lable" property="lable" jdbcType="VARCHAR" />
<result column="area_effective_ids" property="areaEffectiveIds" jdbcType="VARCHAR" />
<result column="function_id" property="functionId" jdbcType="INTEGER" />
<result column="do_log" property="doLog" jdbcType="INTEGER" />
</resultMap>
<resultMap id="ipPortMap" type="com.nis.domain.configuration.IpPortCfg" >
<id column="cfg_id" property="cfgId" jdbcType="BIGINT" />
@@ -260,6 +261,9 @@
<if test="functionId != null">
AND a.function_id=#{functionId,jdbcType=INTEGER}
</if>
<if test="doLog != null">
AND a.do_log=#{doLog,jdbcType=INTEGER}
</if>
<if test="ipPort!=null">
AND a.compile_id in (select t.compile_id from ip_port_cfg t
<where>
@@ -279,6 +283,18 @@
</where>
)
</if>
<if test="ntcSubscribeIdCfg != null">
AND r.compile_id in (select f.compile_id from ntc_subscribe_id_cfg f
<where>
<if test="ntcSubscribeIdCfg.cfgKeywords != null and ntcSubscribeIdCfg.cfgKeywords != ''">
and f.cfg_keywords like concat(concat('%',#{ntcSubscribeIdCfg.cfgKeywords,jdbcType=VARCHAR}),'%')
</if>
<if test="compileId != null">
and f.compile_id =#{compileId,jdbcType=INTEGER}
</if>
</where>
)
</if>
<!-- <if test="ftp!=null">
AND a.compile_id in (select f.compile_id from ftp_keyword_cfg f
<where>

View File

@@ -576,15 +576,9 @@ public class AppCfgService extends BaseService {
}
}
}
if(entity.getCompileId()!=null){
NtcSubscribeIdCfg ntcSubscribeIdCfg = new NtcSubscribeIdCfg();
ntcSubscribeIdCfg.setCompileId(entity.getCompileId());
ntcList = stringcfgDao.findSubscribeIdCfgList(ntcSubscribeIdCfg);
}
if(entity.getNtcSubscribeIdCfgList()!=null&&entity.getNtcSubscribeIdCfgList().size()>0){
if(isAudit==1){
if(!StringUtil.isEmpty(ntcList)){
Map<String,List> ntcMap = cfgConvert(strRegionList,ntcList,2,entity,groupRelationList);
Map<String,List> ntcMap = cfgConvert(strRegionList,entity.getNtcSubscribeIdCfgList(),2,entity,groupRelationList);
groupRelationList=ntcMap.get("groupList");
strRegionList=ntcMap.get("dstList");
}

View File

@@ -43,6 +43,7 @@ import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.AreaIpCfgDao;
import com.nis.web.dao.configuration.FileTransferCfgDao;
import com.nis.web.dao.configuration.MailCfgDao;
import com.nis.web.dao.configuration.StringCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.CrudService;
@@ -59,6 +60,9 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
protected AreaIpCfgDao areaIpCfgDao;
@Autowired
protected MailCfgDao mailCfgDao;
@Autowired
protected StringCfgDao stringCfgDao;
public Page<CfgIndexInfo> getFtpList(Page<CfgIndexInfo> page, CfgIndexInfo entity){
// 生成数据权限过滤条件dsf为dataScopeFilter的简写在xml中使用 ${sqlMap.dsf}调用权限SQL
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a"));
@@ -71,6 +75,13 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
CfgIndexInfo entity = fileTransferCfgDao.getCfgIndexInfo(cfgId);
List<IpPortCfg> ipPortList = fileTransferCfgDao.getIpPortList(entity);
List<BaseStringCfg> keywordList = fileTransferCfgDao.getFtpKeywordList(entity);
//设置关键字
if(entity.getCompileId()!=null){
NtcSubscribeIdCfg ntcSubscribeIdCfg = new NtcSubscribeIdCfg();
ntcSubscribeIdCfg.setCompileId(entity.getCompileId());
List<NtcSubscribeIdCfg> ntcList = stringCfgDao.findSubscribeIdCfgList(ntcSubscribeIdCfg);
entity.setNtcSubscribeIdCfgList(ntcList);
}
entity.setIpPortList(ipPortList);
entity.setStringList(keywordList);
return entity;
@@ -83,6 +94,8 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
public void saveFtpCfg(CfgIndexInfo entity){
//设置区域运营商信息
setAreaEffectiveIds(entity);
entity.setIsValid(0);
entity.setIsAudit(0);
if(entity.getCfgId()==null){
Integer compileId = 0;
try {
@@ -108,6 +121,15 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
}
}
}
if(entity.getNtcSubscribeIdCfgList()!=null){
for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){
if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
// entity.setNtcSubscribeIdCfg(cfg);
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
stringCfgDao.saveSubscribeIdCfg(cfg);
}
}
}
//保存区域IP信息
if(entity.getAreaCfg()!=null){
for(AreaIpCfg cfg:entity.getAreaCfg()){
@@ -123,11 +145,19 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
}
}else{
entity.setEditorId(entity.getCurrentUser().getId());
entity.setEditTime(new Date());
fileTransferCfgDao.updateCfgIndex(entity);
//无效子配置后,再新增子配置
fileTransferCfgDao.deleteFtpIpCfg(entity);
fileTransferCfgDao.deleteFtpKeywordCfg(entity);
fileTransferCfgDao.deleteFileDigestCfg(entity);
//删除关键字配置后再新增
if(entity!=null&&entity.getCompileId()!=null){
NtcSubscribeIdCfg ntcSubscribeIdCfg = new NtcSubscribeIdCfg();
ntcSubscribeIdCfg.setCompileId(entity.getCompileId());
stringCfgDao.deleteSubscribeIdCfg(ntcSubscribeIdCfg);
}
AreaIpCfg area = new AreaIpCfg();
area.setCompileId(entity.getCompileId());
area.setFunctionId(entity.getFunctionId());
@@ -148,6 +178,14 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
}
}
}
if(entity!=null&&entity.getNtcSubscribeIdCfgList()!=null){
for(NtcSubscribeIdCfg cfg:entity.getNtcSubscribeIdCfgList()){
if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
stringCfgDao.saveSubscribeIdCfg(cfg);
}
}
}
//保存区域IP信息
if(entity.getAreaCfg()!=null){
for(AreaIpCfg cfg:entity.getAreaCfg()){
@@ -184,6 +222,14 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
cfg.setTableName(FtpKeywordCfg.getTablename());
fileTransferCfgDao.updateCfgValid(cfg);
}
if(entity.getNtcSubscribeIdCfgList()!=null && entity.getNtcSubscribeIdCfgList().size()>0)
{
NtcSubscribeIdCfg ntc = new NtcSubscribeIdCfg();
BeanUtils.copyProperties(entity, ntc, new String[]{"cfgId"});
ntc.setTableName(ntc.getTablename());
stringCfgDao.updateSubscribeIdCfg(ntc);
}
//保存区域IP信息
if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){
AreaIpCfg cfg = new AreaIpCfg();
@@ -237,6 +283,18 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
strRegionList=map.get("dstList");
}
}
if(entity.getNtcSubscribeIdCfgList()!=null && entity.getNtcSubscribeIdCfgList().size()>0)
{
NtcSubscribeIdCfg ntc = new NtcSubscribeIdCfg();
BeanUtils.copyProperties(entity, ntc, new String[]{"cfgId"});
ntc.setTableName(ntc.getTablename());
stringCfgDao.updateSubscribeIdCfg(ntc);
if(isAudit==1){
Map<String,List> ntcMap = cfgConvert(strRegionList,entity.getNtcSubscribeIdCfgList(),2,entity,groupRelationList);
groupRelationList=ntcMap.get("groupList");
strRegionList=ntcMap.get("dstList");
}
}
if(entity.getDigestList()!=null && entity.getDigestList().size()>0){
FileDigestCfg cfg = new FileDigestCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});

View File

@@ -16,11 +16,11 @@
// initCommIpVal();
/* $("#cancel").on("click", function() {
window.history.back();
});*/
});
$(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId"));
$("#protocolId").val($(this).attr("protocolId"));
});
}); */
$("#serviceId").val($(".action:checked").attr("serviceId"));
$("#protocolId").val($(".action:checked").attr("protocolId"));
$("#cfgFrom").validate(
@@ -191,6 +191,28 @@
</div>
</div>
</div>
<!-- dolog begin-->
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
</div>
<c:set var="ipCfgIndex" value="0"></c:set>
<c:set var="strCfgIndex" value="0"></c:set>
<c:forEach items="${regionList}" var="region" varStatus="status">
@@ -226,6 +248,7 @@
<!--/ip info-->
</c:if>
<c:if test="${region.regionType eq 2 }">
<c:if test="${region.configServiceType eq 'keywords' }">
<c:set var="tabName" value="${region.configRegionValue}Tab"></c:set>
<h4 class="form-section">
<spring:message code="${region.configRegionValue}" />
@@ -264,6 +287,48 @@
</c:otherwise>
</c:choose>
</c:if>
<!-- 关键字 -->
<c:set var="subscribeIndex" value="0"></c:set>
<c:if test="${region.configServiceType eq 'subscribe_id' }">
<c:set var="tabName" value="${region.configRegionValue}Tab"></c:set>
<h4 class="form-section">
<spring:message code="${region.configRegionValue}" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<c:set var="cfgName" value="ntcSubscribeIdCfgList[${subscribeIndex}]"></c:set>
<c:choose>
<c:when test="${fn:length(_cfg.ntcSubscribeIdCfgList)>0}">
<c:set var="isBreak" value="false" ></c:set>
<c:forEach items="${_cfg.ntcSubscribeIdCfgList}" var="cfg">
<c:choose>
<c:when test="${region.configRegionValue eq cfg.cfgType and !isBreak}">
<div class="row boxSolid ${tabName}${status.index}">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
<c:set var="isBreak" value="true" ></c:set>
<c:set var="subscribeIndex" value="${subscribeIndex+1 }"></c:set>
</c:when>
</c:choose>
</c:forEach>
<c:if test="${!isBreak}">
<div class="row boxSolid ${tabName}${status.index} hidden disabled">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
<c:set var="subscribeIndex" value="${subscribeIndex+1 }"></c:set>
</c:if>
</c:when>
<c:otherwise>
<div class="row boxSolid ${tabName}${status.index} hidden disabled">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
<c:set var="subscribeIndex" value="${subscribeIndex+1 }"></c:set>
</c:otherwise>
</c:choose>
</c:if>
<!-- 关键字结束 -->
</c:if>
</c:forEach>
<br>
<%@include file="/WEB-INF/include/form/areaInfo.jsp"%>

View File

@@ -10,6 +10,10 @@
//搜索框提示语初始化
if("${cfg.cfgDesc}"){
$("#intype").val("${cfg.cfgDesc}");
}else if("${cfg.ntcSubscribeIdCfg.cfgKeywords}"){
$("#intype").val("${cfg.ntcSubscribeIdCfg.cfgKeywords}");
}else if("${cfg.compileId}"){
$("#intype").val("${cfg.compileId}");
}else{
$("#intype").attr("placeholder","<spring:message code='input'/> "+$("#seltype").find("option:selected").text());
}
@@ -31,6 +35,7 @@
$(".Wdate").attr("value",'');
$("#level").attr("value",'');
$("#searchForm")[0].reset();
$("#intype").attr("placeholder","<spring:message code='input'/> "+$("#seltype").find("option:selected").text());
});
//异步获取voip相关信息
$("span[id^=open]").click(function(){
@@ -132,6 +137,8 @@
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="cfgDesc"><spring:message code="config_describe"></spring:message></form:option>
<form:option value="compileId"><spring:message code="cfg_id"></spring:message></form:option>
<form:option value="ntcSubscribeIdCfg.cfgKeywords"><spring:message code="APP_SUBSCRIBE_ID"></spring:message></form:option>
<%-- <form:option value="voipIp.srcIpAddress"><spring:message code="client_ip"/></form:option>
<form:option value="voipIp.srcPort"><spring:message code="client_port"/></form:option>
<form:option value="voipAccount.cfgKeywords"><spring:message code="key_word"/></form:option>
@@ -305,8 +312,10 @@
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th style="display: none"><spring:message code="cfg_id"/></th>
<th class="cfgDesc"><spring:message code="config_describe"/></th>
<th><spring:message code="block_type"/></th>
<th><spring:message code="do_log"/></th>
<th><spring:message code="whether_area_block"/></th>
<th><spring:message code="letter"/></th>
<th><spring:message code="classification"/></th>
@@ -330,6 +339,7 @@
<span id="open${status.index}" class="" compileId="${indexCfg.compileId}" cfgId="${indexCfg.cfgId}"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span>
<input type="checkbox" class="i-checks child-checks" id="${indexCfg.cfgId}" value="${indexCfg.isAudit}">
</td>
<td>${indexCfg.compileId }</td>
<td>${indexCfg.cfgDesc }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -338,6 +348,13 @@
</c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq cfg.doLog }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
<td>
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
<c:if test="${indexCfg.isAreaEffective==1}">

View File

@@ -172,6 +172,59 @@
</div>
</c:if>
</c:forEach>
<!-- subscribe_id-->
<c:forEach items="${_cfg.ntcSubscribeIdCfgList}" var="cfg">
<c:if test="${region[1] eq cfg.cfgType }">
<div id="${region[1]}Info${index}" class="content" name="subCfg${index}">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label><spring:message code='keywords' />:</label><label>
${fn:replace(cfg.cfgKeywords, "***and***", " ")}</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='expression_type' />:</label>
<label>
<c:choose>
<c:when test="${cfg.exprType eq 1}"><spring:message code='and_expression'/></c:when>
<c:when test="${cfg.exprType eq 0}"><spring:message code='null_expression'/></c:when>
</c:choose>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='match_method' />:</label>
<label>
<c:forEach items="${fns:getDictList('MATCH_METHOD')}" var="matchMethodC">
<c:if test="${cfg.matchMethod==matchMethodC.itemCode }"><spring:message code="${matchMethodC.itemValue}"/></c:if>
</c:forEach>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='whether_hexbinary' />:</label>
<label>
<c:forEach items="${fns:getDictList('WHETHER_HEXBINARY')}" var="isHexbinC">
<c:if test="${cfg.isHexbin==isHexbinC.itemCode }"><spring:message code="${isHexbinC.itemValue}"/></c:if>
</c:forEach>
</label>
</div>
</div>
</div>
</div>
</c:if>
</c:forEach>
</c:if>
<%-- <c:if test="${region[0] eq 5 }">
<c:forEach items="${_cfg.digestList}" var="cfg">