kalman03

每天早上看一遍《福布斯》富翁排行榜,如果上面没有我的名字,我就去学习......
随笔 - 22, 文章 - 0, 评论 - 86, 引用 - 0
数据加载中……

Struts2系列—Form Tags(combobox/doubleselect)

    网络上关于Struts2方面资料不少,之所以再重复一些关于Struts2的知识,只是因为本人正在学习Struts2,而且在学习的途中也遇见了不少的问题,由于没有学过Struts2以前的版本,学习途中也是比较的痛苦,在此仅想记录下我的学习历程。
     如果你对这个方面有深入研究,恳请你的指点;如果你也是初学者,希望这系列的文章对你有所帮助。

     Struts2中的combobox类似HTML中的select,一个组合框,用起来很简单。而doubleselect的功能倒是很强大,就是我们传说中的级联菜单,记得用JavaScript写也要写一会。
     先看combobox.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head></head>
    
<body>
        
<s:form>
            
<!--             直接指定list集合里面的值-->

            
<s:combobox label="选择你喜欢的颜色" name="colorNames"
                headerValue
="------请选择------" headerKey="1"
                list
="{'红','橙','黄','绿','青','蓝','紫'}" />

            
<!--             动态绑定list集合里面的值 -->

            
<s:combobox label="选择你喜欢的颜色" name="colorName"
                headerValue
="------请选择------" headerKey="1" list="colorname" />
        
</s:form>
    
</body>
</html>
因为动态绑定,再增加一个ComboboxAction.java:
package com.kalman03.action;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

/**
 * @FileName ComboboxAction.java
 * 
 * @Author kalman03
 * 
 
*/
public class ComboboxAction extends ActionSupport {

    
private List colorname;

    
public List getColorname() {
        
return colorname;
    }

    
public void setColorname(List colorname) {
        
this.colorname = colorname;
    }

    @Override
    
public String execute() throws Exception {
        colorname 
= new ArrayList();
        
//colorname的选项当然是来自数据库
        colorname.add("");
        colorname.add(
"");
        colorname.add(
"");
        colorname.add(
"绿");
        colorname.add(
"");
        colorname.add(
"");
        colorname.add(
"");
        
this.setColorname(colorname);
        
return SUCCESS;
    }
}
配置struts.xml:
<action name="comboboxtag" class="com.kalman03.action.ComboboxAction">
            
<result>/combobox.jsp</result>
</action>
看效果:


我更加喜欢doubleselect的强大,来体验下:
doubleselect.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<title>struts2</title>
    
</head>

    
<body>
        
<s:form>
<!--            可以用直接指定,当然也可以跟数据库绑定的-->
            
<s:doubleselect label="Select Item" headerValue="---- 请选择 ----"
                headerKey
="1" list="{'湖南省','湖北省'}" doubleName="dishes"
                doubleList
="top == '湖南省' ? {'长沙市','岳阳市','怀化市',
          '株洲市','湘潭市','衡阳市','邵阳市','常德市','娄底市','张家界市','郴州市','永州市'} : { '其他'}"
 />
        
</s:form>
    
</body>
</html>


增加下列代码到struts.xml:
<action name="doubleselecttag">
            
<result>/doubleselect.jsp</result>
</action>
浏览:http://localhost:8080/test/doubleselecttag.action
可以看到:

比起长长的JavaScript代码要清晰明了多了,但是也使我们程序员变傻瓜了,所以还是要多看看源文件...








posted on 2008-11-01 11:29 kalman03 阅读(2525) 评论(1)  编辑  收藏 所属分类: Struts2

评论

# re: Struts2系列—Form Tags(combobox/doubleselect)  回复  更多评论   

哥们,没有亲自测试过吧,s:doubleselect是必须有id的
2014-08-26 10:50 | wc0077

只有注册用户登录后才能发表评论。


网站导航: