Struts <html:multibox> <html:select>

本文详细介绍了Struts框架中的&lt;html:multibox&gt;和&lt;html:options&gt;标签的使用方法,包括如何通过不同方式设置选项及值,并确保表单正确初始化。

庆贺党的生日!

 

一、

  在Struts中<html:checkbox>和<html:mutlibox>都可以生成checkbox标签。<html:checkbox>
比较简单在此就不介绍了。与<html:checkbox>相比<html:mutlibox>更具体灵活性。
<html:mutlibox>有两种使用方式:
1.使用数组方式:

 在Form中定义一个要显示的标签的数组和一个值的数组并提供相应的get、set方法。
 private String[] values ;
 private String[] labels = { "标签1", "标签2", "标签3", "标签4", "标签5" };
 在JSP页面的中代码:
  <logic:iterate id="lab" name="multiboxForm" property="labels">
   <html:multibox property="values">
    <bean:write name="lab" />
   </html:multibox>
   <bean:write name='lab' />
   <br>
  </logic:iterate>
 values的值如果没有给定,页面加载的时候则不选中任何项,设定值后则会选中相应的项。

 
2.使用org.apache.struts.util.LabelValueBean方式:

 在Form中定义一个装载标签、标签对应值的集合和一个用户选定值的数组并提供相应的get、set方法。
 private String[] values ;
 private ArrayList labelCollection;
 定义一个组装标签和标签对应值的方法。此处使用了static方法,可根据实现情况使用非静态方法。
 public static ArrayList getValues(String fileName) throws Exception {
  //可通过.properties或数组的方式来组装数据,此处使用.properties方式来实现更具灵活性。
  Properties prop = new Properties();
  //如果使用非static方法此处为:prop.load(this.getClass().getResourceAsStream(fileName));
  prop.load(VO.class.getResourceAsStream(fileName));
  Enumeration enums = prop.propertyNames();
  String key = null;
  ArrayList list = new ArrayList();
  while (enums.hasMoreElements()) {
   key = (String) enums.nextElement();
   list.add(new LabelValueBean(prop.getProperty(key), key));
  }
  return list;
 }
 得到list后,可为form中的lableCollection属性赋值.setCamCollection(list)。
 在JSP页面的中代码:
  <logic:iterate id="lab" name="multiboxForm" property="labelCollection">
   <html:multibox property="values">
    <bean:write name="lab" property="value" />
   </html:multibox>
   <bean:write name="lab" property="label" />
   <br>
  </logic:iterate>
   

    values的值如果没有给定,页面加载的时候则不选中任何项,设定值后则会选中相应的项。 
 
    最后强调一点,就是在Form的reset方法中要将其复位,否者checkbox不能正常工作。如果是使用动态Form则必须在reset方法中调用initialize(mapping)方法。因为DynaActionForm类中reset方法是个空方法没有实现体,所以必须定义一个DynaActionForm类的子类来复写reset方法。

 

二、

<html:options>与<html:optionCollection>都是用来生成一组<html:option>的标签,后者比前者更具灵活性。
 
 <html:select name='FormName' property='propertyName'>
  <html:optionsCollection property='CollectionName'/>
 </html:select>
    此处CollectionName为装载了标签和值的集合。与<html:multibox>标签一样,要正确使用必须在reset方法中将CollectionName置空。

内容概要:本文提出了一种基于非合作博弈理论的居民负荷分层调度模型,并结合双层鲸鱼优化算法(Two-level Whale Optimization Algorithm)进行高效求解,模型与算法均通过Matlab代码实现。研究针对电力系统中居民侧用电负荷的复杂调度问题,引入非合作博弈机制刻画各用户之间的利益竞争关系,实现负荷的分层优化分配;同时设计双层优化架构,上层优化资源配置,下层模拟用户自主决策行为,提升了模型的实用性与合理性。通过智能优化算法求解多层级、非凸非线性的博弈模型,有效提高了调度方案的收敛性与全局寻优能力,适用于现代智能电网中的需求侧管理与能源优化场景。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,从事智能电网、能源优化调度、需求侧管理、博弈论应用等方向的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于居民区电力负荷的分层优化调度系统设计与仿真分析;②为非合作博弈在多主体能源系统建模中的应用提供方法论支持;③利用双层鲸鱼算法解决具有嵌套结构的复杂双层优化问题,提升求解效率与调度方案的可行性。; 阅读建议:建议读者结合提供的Matlab代码深入理解模型构建逻辑与算法实现流程,重点关注博弈模型的效用函数设计、纳什均衡求解思路以及双层优化结构的迭代机制,宜配合实际用电数据开展复现实验以验证模型有效性与鲁棒性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值