引用 引用 LabelValueBean应用

★风中♀影★ 的 LabelValueBean应用

用LabelValueBean类管理一组选项

multibox和另外几种标签往往需要使用一个或多个标签/值对作为其选项的来源。说到封装一组label/value值,org.apache.struts.util.LabelValueBean类是一个非常方便的工具。LabelValueBean类是一个JavaBean,它有两个String类型的属性:label和value。我们可以用它的两个构造器之一来创建LabelValueBean对象。

public LabelValueBean()

public LabelValueBean(java.lang.String label,)

java.lang.String value

我们通常需要先创建多个LabelValueBean实例并把它们放入一个ArrayList或其他类型的集合,再把这个集合设置为作用域对象以便从JSP页面对之进行访问。或者,我们也可以把包含着LabelValueBean对象的集合先放入另一个对象,再把后者设置为作用域对象。

下面是把包含着LabelValueBean对象的集合设置为作用域对象时的基本原则:

(1) 如果在一个表单中只用到LabelValueBean对象,建议添加一个能返回集合的动作表单的属性。

(2) 如果在应用程序里的许多地方需要用到LabelValueBean对象,就应该把它们构成的集合设置为ServletContext对象的一个属性。

(3) 如果LabelValueBean对象的变化比较频繁(比如说,它们的值来自某个数据库并总是变来变去),就应该在某个动作类里去创建一个包含着这些LabelValueBean对象的集合,并把这个集合设置为一个请求作用域对象。

在action中把lwlxmlist(这是个ArrayList,里面放的是LabelValueBean)放到request中(没有用到spring框架,pub_code是一个代码表,树状结构的,根节点是"LWLXM"):
......
request.setAttribute("lwlxmlist", new Code().getMenu("LWLXM", "pub_code"));
......
在Code类中,组织一个ArrayList,里面放的是Labelvaluebean(大概的代码如下,没有用Hibernate,用的是我们实验室的一个数据库连接池,主要用来连接国产数据库的,仅供参考):
public ArrayList getMenu(String type_code, String table_name){
try{
ArrayList ret_list=new ArrayList();
SQLBean conn=new SQLBean();
ResultSet rs=conn.executeQuery("select * from "+table_name+" where parent_id=(select id from "+
table_name+" where code='"+type_code+"') order by code");
while(rs.next()){
ret_list.add(new LabelValueBean(rs.getString("description"),(rs.getString("code")==null)?"":rs.getString("code").trim()));
}
conn.close();
return ret_list;
}catch(Exception e){
e.printStackTrace();
return null;
}
}
最后,在页面中这样显示下拉菜单:
......
<tr>
<td align="left">
论文类型:
</td>
<td align="left">
<logic:notEmpty name="lwlxmlist" scope="request">
<html:select property="lwlxm">
<html:optionsCollection name="lwlxmlist" />
</html:select>
</logic:notEmpty>
<font size=2 color=red><html:errors property="lwlxm" />
</font>
</td>
</tr>
......
不要忘了在jsp页面中引入html和logic标签:
<%@taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

ok了,这样就有下拉菜单了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值