对于优化jfinal下拉框的问题

本文介绍了如何通过在实体类中添加方法来优化JFinal项目的下拉框代码,减少冗余判断,提高效率。针对varchar和int类型的数据库字段,提供了不同的处理方式,并展示了在添加、展示和修改页面上的应用,以及利用公共脚本实现自动选中效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了简化一些不必要的代码,首先我们从下框开始
以前我们的下拉框会写的很长,例如(我们会给下拉框加判断,如果值==谁,然后就显示什么什么)
<select id="sex" name="beemember.sex" class="form-control">
<option name="beemember.sex" <%if(isNotEmpty(model.sex) && model.sex == '男'){ print("selected"); } %> >男</option>
<option name="beemember.sex" <%if(isNotEmpty(model.sex) && model.sex =='女'){ print("selected"); } %>>女</option>
</select>

那么现在呢 为了节约一些不必要的时间,我们可以在实体类里面直接写上下垃框:
1,针对数据库字段类型是varchar类型的
如:
public void setContinue_status(String continue_status){
set(column_continue_status, continue_status);
}
public String getContinue_status() {
return get(column_continue_status);
}
//ps:以上的代码是原有的生成的set,get方法
ps:下面的是我们把get方法复制过来,在原有的基础上自己写的

public String getContinue_status_name() { //getContinue_status_name该名字自定义
String tmp1=get(column_continue_status); //column_continue_status名字要和get方法里的名字保持一致tmp1是自定义的名字
if(tmp1.equals("00")){
return "不支持续投";
}else if(tmp1.equals("01")){
return "不续投";
}else if(tmp1.equals("02")){
return "本金续投";
}else if(tmp1.equals("03")){
return "本息续投";
}
return "";
}
Stirng不能用== 赋值 需要用equals
针对数据库字段类型是int类型的:
public void setIs_redeem(Integer is_redeem){
set(column_is_redeem, is_redeem);
}
public Integer getIs_redeem() {
return get(column_is_redeem);
}
public String getIs_redeem_name() {
intaa=getIs_redeem();
if(aa==0){
return "不允许";
}else if(aa==1){
return "允许";
}
return "";
}
以上这种方法写好了之后呢,我们就可以在添加页面非常简便的写:
<select name="beeProduct.is_continue" class="form-control">
<option value="0">不支持续投 </option>
<option value="1">支持续投</option>
</select>
这样既可,在展示页面的我们就要注意了:
<td>${model.is_continue_product_name!}</td> 我们需要这样普通的写,但是里面我们is_continue_product_name这个字段就是我们重新写的get方法的名称,一定要用我们实体类里重新写的这个字段,否则展示不出来


//==================
在修改页面呢,以前我们需要这样写,如:
<select id="sex" name="beemember.sex" class="form-control">
<option name="beemember.sex" <%if(isNotEmpty(model.sex) && model.sex == '男'){ print("selected"); } %> >男</option>
<option name="beemember.sex" <%if(isNotEmpty(model.sex) && model.sex =='女'){ print("selected"); } %>>女</option>
</select>

但是现在呢,既然用了这个办法,我们就不需要这样写了,我们可以写一段公共代码在css.html页面:
var nbee_select = {
auto_selected_value : function(){
$("select[auto_selected_value]").each(function(){
var _auto_selected_value=$(this).attr("auto_selected_value");
$(this).val(_auto_selected_value);
});
}
};
以上这段代码是公共的,我们页面上引入了css.html
下面呢我们就可以直接把下拉框这样写:
<select id="is_show" name="beeProduct.is_show" auto_selected_value="${model.is_show!}" class="form-control">
<option value="0">显示</option>
<option value="1">不显示</option>
<option value="2">待显示</option>
</select>
把咱们的value值换成auto_selected_value这个,因为这个值是咱们封装好的公共的,
在最下方脚本里面呢 我们就可以用咱们公共的方法点公共的value值:

如下:
nbee_select.auto_selected_value();//这样写就可以了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值