Struts 2.1 Tags

最近学习  Struts 2.1 Tags 做了些笔记,贴出来大家一起学习下,希望大家多多交流。

index.jsp 代码

Java代码
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
    <%@page import="com.rao.bean.Sex"%>  
    <%@ taglib prefix="s" uri="/struts-tags"%>  
    <%@ taglib prefix="sx" uri="/struts-dojo-tags"%>  
      
      
      
      My page  
        
        
      
      
        
        Struts 2.1 Tags  
        

一、控制标签

#、if /elseif/ else @用于逻辑判断
你是何方妖怪? 未成年人不能进入! 您已经成年! 您已经老了!
--------------------------------------------------------------
#、append @用于将多个集合合并
|
--------------------------------------------------------------
#、generator
generator标签,该标签可以将指定字符串按指定分隔符分割成多个字串。生成的多个字串可以用iterator标签进行迭代输出。可以这么理解:generator标签将一个字符串转换成一个List集合。在该标签体内,整个临时生成的集合将为Valuestack的顶端,但一旦该标签结束,生成的集合将被移除Valuestack。generator标签有如下几个属性:
1、count属性:指定生成集合中元素的总数。可选属性。
2、val属性:必填属性,指定被解析的字符串。
3、separator属性:这是一个必填属性,指定用于分割字符串的分隔符。
4、converter属性:可选属性,指定一个转换器,转换器负责将生成的集合中的每个字符串转换成对象,通过这个转换器可以将一个含有分隔符的字符串解析成对象的集合。转换器必须一个继承org.apache.struts2.util.IteratorGenerator.Converter的对象。
5、var属性,可选属性。如果指定了该属性,则将生成的集合保存在Stack Context中。如果不指定该属性,则将生成的集合放入ValueStack的顶端,该标签一结束,生成的集合就被移除。该属性也可替换成id。


--------------------------------------------------------------
#、iterator 用于迭代数据
pink">
索引 奇? 偶? 首? 尾? 当前迭代数量

--------------------------------------------------------------
#、merge @和类似:用于将多个集合合并
|
--------------------------------------------------------------
#、sort @用于排序
,
--------------------------------------------------------------
#、subset @用户截取集合中的子集; 注:decider:可选属性,指定由开发者自己决定是否选中该元素.
,
--------------------------------------------------------------
二、数据标签

#、action @用于导入一个Action
使用action标签,可以允许在jsp页面中直接调用Action,在调用Action时候,可以指定需要被调用的Action的name和namespace.如果指定了executeResult参数的属性值为true,该标签会把Action的处理结果(视图资源)包含到本页面中. 使用action标签指定属性有:
id: 可选属性,作为该Action的引用ID
name:必选属性,指定调用Action
namespace:可选属性,指定该标签调用Action所属namespace
executeResult:可选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含.
ignoreContextParam:可选参数,指定该页面的请求参数是否需要传入调用的Action中,默认值是false,即传入参数.
s:param是以request方式的值的,而不是以参数传值,所以request.getParameter("")会获取不到值,通过request.getAttribute("")方式可以获取

--------------------------------------------------------------
#、bean @用于导入一个javaBean,相当于:jsp:useBean 标签
userId:
userName:
--------------------------------------------------------------
#、date @用于格式化日期
当期系统时间是:
--------------------------------------------------------------
#、debug @用于调试程序,让开发人员一目了然的知道当前请求、值栈、栈中的各项参数

--------------------------------------------------------------
#、i18n @用于访问国际化资源文件的内容
1.默认访问全局范围内的资源文件;
三毛 学习
2.访问包范围内的资源文件;
三毛 学习
3.访问Action范围内的资源文件;
三毛 学习
--------------------------------------------------------------
#、include @用于导入一个jsp文件,等同于:jsp:include标签

--------------------------------------------------------------
#、param @用于给指定参数设置值
userId:
userName:
--------------------------------------------------------------
#、property @输出结果,很像EL表达式,但是可以依托于OGNL表带是很强大
同上
--------------------------------------------------------------
#、push @该标签可以把程序员在ActionContext中引用的对像压入valuestack中,为以后访问对象提供了方便

--------------------------------------------------------------
#、set @用户声明对象或属性
,你好啊!
--------------------------------------------------------------
#、text @用户获取国际化资源文件的内容
请参考 il8n标签
--------------------------------------------------------------
#、url @用于组拼一个请求路径

注意:
value以字符处理:
value明确指定以ognl表达式处理:
--------------------------------------------------------------
三、UI标签

#、checkboxlist @复选框列表
1> .list 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
name:checkboxlist的名字
list:checkboxlist要显示的列表
value:checkboxlist默认被选中的选项,checked=checked

2> .Map 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
name:checkboxlist的名字
list:checkboxlist要显示的列表
listKey:checkbox 的value的值
listValue:checkbox 的lablel(显示的值)
value:checkboxlist默认被选中的选项,checked=checked

--------------------------------------------------------------
#、combobox

--------------------------------------------------------------
#、radio @单选框
<% Sex sex1 = new Sex(1,"男"); Sex sex2 = new Sex(2,"女"); List list = new ArrayList(); list.add(sex1); list.add(sex2); request.setAttribute("sexs",list); %> 这个与checkboxlist差不多;
1>.如果集合为javabean:
2>.如果集合为list:
3>.如果集合为map:


--------------------------------------------------------------
#、select @下拉列表框
这个与s:checkboxlist差不多;
1>.如果集合为javabean:
2>.如果集合为list:
3>.如果集合为map:

--------------------------------------------------------------
#、doubleselect @级联菜单

--------------------------------------------------------------
#、optiontransferselect

--------------------------------------------------------------
#、updownselect @可上下选择的select

--------------------------------------------------------------
#、sx:datetimepicker @日期选择控件
使用步骤:声明:我这里用的是strut 2.1.8.1,在struts2.0的版本中可能有所不同;
1.导入struts2-dojo-plugin-2.1.8.1.jar DoJo 插件包;
2. 导入标签:<%--@ taglib prefix="sx" uri="/struts-dojo-tags"--%>;
3.在需要使用的页面中的head标签之间加上<%-- --%>;

--------------------------------------------------------------
#、sx:tabbedpanel @选项卡控件
声明:这个标签代码转至:http://blog.sina.com.cn/s/blog_6145ed810100ecud.html,版权归作者所有;写的挺好拿来大家共同学习。
最简单的选项卡:
Local Tab 1 Local Tab 2
加载其他页面的选项卡:
Remote Tab 1 Remote Tab 1
设置选项卡底下的内容懒加载,即等需要的时候再加载,使用属性preload="false":
Remote Tab 1 Remote Tab 1
固定大小的选项卡,使用属性cssStyle和doLayout:
Local Tab 1 Local Tab 2
每次点击选项卡时都重新刷新内容,使用属性refreshOnShow:
Remote Tab 1 Remote Tab 2
使得其中一个选项卡失效:
Local Tab 1 Local Tab 2
设置选项卡在底部显示 (可以是: top, right, bottom, left):
Local Tab 1 Local Tab 2
设置选项卡允许关闭,使用属性closeable:
Local Tab 1 Local Tab 2
--------------------------------------------------------------
#、sx:textarea @textarea控件

--------------------------------------------------------------
#、sx:tree @树控件


 

struts.xml 代码:

Xml代码
  
  
  
      
      
      
      
          
            /success.jsp              
          
      


 

TagsAction1.java 代码:

Java代码
    package com.rao.action;  
      
    import com.opensymphony.xwork2.ActionSupport;  
      
    public class TagsAction1 extends ActionSupport {  
        private String userName;  
        public String getUserName() {  
            return userName;  
        }  
        public void setUserName(String userName) {  
            this.userName = userName;  
        }  
      
        @Override  
        public String execute() throws Exception {  
              
            return SUCCESS;  
        }  
      
    }


 

GlobalNativeAction.java

Java代码
    package com.rao.action;  
      
    import com.opensymphony.xwork2.ActionContext;  
    import com.opensymphony.xwork2.ActionSupport;  
    /** 
     * 演示的是在Action 中获取国际化资源文件中的内容 
     * @author Administrator 
     * 
     */  
    public class GlobalNativeAction extends ActionSupport {  
      
        @Override  
        public String execute() throws Exception {  
            //不带有占位符的获取方法  
            //ActionContext.getContext().put("message", this.getText("welcome"));  
            //带有占位符的获取方法  
            ActionContext.getContext().put("message", this.getText("welcome",new String[]{"raozhiyong","study"}));  
            return "message";  
        }  
      
    }


 

struts2_zh_CN.properties

 

welcome      全局范围:{0},这是一个中文的国际化资源文件,欢迎你的使用{1}!!!

 

GlobalNativeAction_zh_CN.properties

 

welcome      Action范围:{0},这是一个中文的国际化资源文件,欢迎你的使用{1}!!!

 

package_zh_CN.properties

 

welcome      package范围:{0},这是一个中文的国际化资源文件,欢迎你的使用{1}!!!

 

Sex.java

Java代码

    package com.rao.bean;  
      
    public class Sex {  
        private int id;  
        private String name;  
          
        public Sex(int id, String name) {  
            super();  
            this.id = id;  
            this.name = name;  
        }  
          
        public int getId() {  
            return id;  
        }  
        public void setId(int id) {  
            this.id = id;  
        }  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
      
    }


 

UserBean.java

Java代码
    package com.rao.bean;  
      
    import java.io.Serializable;  
      
    public class UserBean implements Serializable{  
      
        private static final long serialVersionUID = 1L;  
        public UserBean() {}  
          
        private Integer userId;  
        private String userName;  
        public Integer getUserId() {  
            return userId;  
        }  
        public void setUserId(Integer userId) {  
            this.userId = userId;  
        }  
        public String getUserName() {  
            return userName;  
        }  
        public void setUserName(String userName) {  
            this.userName = userName;  
        }  
      
    }


 

MyComparator.java

Java代码
    package com.rao.comparator;  
      
    import java.util.Comparator;  
      
    public class MyComparator implements Comparator {  
      
        public int compare(Integer o1, Integer o2) {  
            int c = o1.compareTo(o2);   
            return c;//可以完成顺序排序  
            //return -c;//可以完成倒序排序  
        }  
    }


 

你可能感兴趣的:(Struts2,struts2,标签)