Struts2系列—Form Tags(combobox/doubleselect)

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代码要清晰明了多了,但是也使我们程序员变傻瓜了,所以还是要多看看源文件...








你可能感兴趣的:(Struts2系列—Form Tags(combobox/doubleselect))