按钮显隐的两种方式

第一种:

下面分几步介绍一下:
1.首先是前端jsp的设置
<c:if test="${'1'.equals(btnPrinFlg) }">
	<input name="othSaveOffline" id ="othSaveOffline" style="margin-right: 10px;"
	type="button" onclick="sendUpdatePo('${ctx}/po/updateSaveOffline.do',false)"
	value="更新" ${("518" eq tdpSo.docStatus or "519" eq tdpSo.docStatus 
	or null  eqtdpSo.docStatus) ? "" : "disabled=\"disabled\""}>
</c:if>
这段代码中有两个需要注意的地方:
1.参数btnPrinFlg,btnPrinFlg是添加在数据库中的一个数据(数据的图在下方),
并需要有get set方法的实体类,
目的是当通过不同的方式进入此界面时获取到不同的btnPrinFlg值,以至于在此处的if中作为判断依据,
看此按钮是隐藏还是显示。
2.updateSaveOffline.do是与后端Controller中的方法进行关联,可以理解成一个特殊的“点击事件”,
也就是当点击此按钮的时候会触发哪一个方法从而实现什么功能。

数据库数据:
在这里插入图片描述

2.前端jsp看完后再看后端的处理方式
<c:if test="${'1'.equals(btnPrinFlg) }">
上面也说到了这是第一种显隐的方式,通过if标签判断按钮是否显示。
参考上图数据库中信息,当我们从网页中点击通过一个方式进入此界面后,我们获取他的model,
并在后端进行赋值尽

那么这个 model获取到之后有什么作用呢?请看下图

上步所说到的实体类
public class OfflineStatus {
	// 显示标记-打印按钮
	private String po_BtnPrinFlg = "";
	//get set方法
	public String getPo_BtnPrinFlg() {
		return po_BtnPrinFlg;
	}
	public void setPo_BtnPrinFlg(String po_BtnPrinFlg) {
		this.po_BtnPrinFlg = po_BtnPrinFlg;
	}
}

ps:下面用<>==>来表示执行顺序

当我们通过一个方式进入到此界面之后,上面if中的判断参数便是由此来一步步获取
private OfflineStatus initPoSettingLoad(String model) {
1.<创建实体类对象>==>
		OfflineStatus offlineStatus = new OfflineStatus();
2.<调用成员方法getConfigMap>==>
		//此处的docStatus为订单状态
		String rtnMap = this.getConfigMap(model,"docStatus");
11.<>==>
		if (!StringUtils.isBlank(rtnMap)) {
			offlineStatus.setModel(model);
			offlineStatus.setIsData(true);
			//	显示标记-打印按钮
			offlineStatus.setPo_BtnPrinFlg ( this.getConfigMap(model,"btnPrinFlg"));
		}
	}
---------------------------------------------------------------------------------------
3.<得到系统配置的数据>==>
private String getConfigMap(String models,String confType) {
4.<调用getStrConf(实现类)>==>
	String value =  tdpSysconfigService.getStrConf(models + confType);
10.<>==>
		if (StringUtils.isEmpty(value)) {
			return "";
		}
		return value;
	}
---------------------------------------------------------------------------------------
5.<>==>
public String getStrConf(Object objCode) {
	if(StringUtils.isEmpty(objCode)){
		return null;
	}
	String confCode = StringUtils.toString(objCode);		
	if(sysConf.isEmpty()){
6.<>==>
		this.initCache();
	}
9.<>==>
	return sysConf.get(confCode);
}
---------------------------------------------------------------------------------------			
7.<>==>
private synchronized void initCache(){
	if(!sysConf.isEmpty()){
		return;
	}
	Map<String, Object> param = new HashMap<String, Object>();	
8.<>==>	
	List<TdpSysconfig> list = tdpSysconfigMapper.queryTdpSysconfig(param);
	String confType = "";
	for(TdpSysconfig item:list){
		confType = item.getConfType() == null ? "" : item.getConfType();
		sysConf.put(item.getConfCode() + confType, item.getConfValue());
	}
}

第二种:

<c:if test="${'1'.equals(btnPrinFlg) }">
	<input name="othSaveOffline" id ="othSaveOffline" style="margin-right: 10px;"
	type="button" onclick="sendUpdatePo('${ctx}/po/updateSaveOffline.do',false)"
	value="更新" ${("518" eq tdpSo.docStatus or "519" eq tdpSo.docStatus 
	or null  eqtdpSo.docStatus) ? "" : "disabled=\"disabled\""}>
</c:if>
这第二种方法就是利用disabled,这个属性可以使按钮变灰变得不可点击(效果如下图所示),
而这里使用了三元表达式,通过判断订单的状态来确定按钮是否隐藏。

在这里插入图片描述
PS:本人也正在学习的道路上不断前进,如有不对的地方还请各位大佬多多指正。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值