struts2--struts2标签库(部分)
来源:互联网 发布:金鼎娱乐源码下载 编辑:程序博客网 时间:2024/05/19 20:21
一:非UI标签:
一)控制标签
a、sort标签:用于对指定的集合进行排序。包含两个属性source:指定集合;comparator:用于进行排序的Comparator实例,为必填属性(使用该标签时,生成的子集放在ValueStack栈顶,如果sort标签结束,则该标签生成的子集将从ValueStack中移除)
sort标签对集合进行排序时,需要自定义一个Comparator类,自定义的Comparator类需要实现java.util.Comparator接口,并实现该接口的compare()方法。
案例:自定义类:MyComparator:
package com.Comparator;import java.util.Comparator;public class MyComparator implements Comparator{@Overridepublic int compare(Object obj1, Object obj2) {String s1 = (String)obj1;String s2 = (String)obj2;//=0表明相等,>表明s1大于s2,否则想反return s1.length() - s2.length();}}jsp页面:
<body> <s:set value = "{'abc','yesy','12354','iloveyou','no'}" name = "newList"/> <s:bean id = "mycomparator" name = "com.Comparator.MyComparator"/><!-- 实例化 --> <s:sort comparator="mycomparator" source = "newList"> <s:iterator status = "ss"> <s:property value = "#ss.getIndex()"/>: <s:property/><br> </s:iterator> </s:sort> </body>
排序结果:
二)数据标签
a、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,即传入参数.
案例:Action:
package com.action;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction2 extends ActionSupport {private String username;private String password;public String execute() {return SUCCESS;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}jsp页面:
<body> Action执行结果传入本界面:<br> <s:action name = "login2" executeResult="true" namespace = "/"> <s:param name = "username">ldw</s:param> <s:param name = "password">123456</s:param> </s:action><br><br> Action执行结果传入本界面:<br> <s:action name="login2" executeResult="true" ignoreContextParams="false" namespace = "/"> <!--ignoreContextParams和子元素param冲突,参数仍传到了action中--> <s:param name = "username">ldw</s:param> <s:param name = "password">123456</s:param> </s:action><br><br> Action执行结果禁止传入本界面:<br> <s:action name="login2" executeResult="false" namespace = "/"> <s:param name = "username">ldw</s:param> <s:param name = "password">123456</s:param> </s:action> </body>结果视图:
<body> 调用了Action中的execute()方法<br> 用户名: <s:property value = "username"/><br> 密码:<s:property value = "password"/> </body>
结果:
b、push标签:将某个值压入ValueStack的栈顶,该标签有两个属性(id,value)
<body> <s:bean name="com.action.LoginAction2" id = "newUser"> <s:param name = "username">张三</s:param> <s:param name = "password">123456</s:param> </s:bean> <s:push value = "#newUser"> 姓名:<s:property value = "username"/><br> 密码:<s:property value = "password"/> </s:push> </body>通过使用push标签将参数值放到ValueStack栈顶后,使用property标签输出参数值时就不需要被包含在bean标签内。当push标签结束时,push标签放入值栈中的对象将被删除。(即要访问push标签压入栈中的对象,需要在标签内部访问)
运行效果:
二、UI标签
一)表单标签
a、checkboxlist标签:
案列:jsp页面:
<body> <s:bean name="com.action.AllDogs" id = "newDog"/> <s:checkboxlist list="#newDog.getDogs12()" listKey="index" listValue="name" name = "kindlist" label="种类"/><br><br> <!-- 也可以写成list="#newDog.dogs12",(这是属于ognl的伪属性吗?)--> <s:checkboxlist list="#{'brown':'棕色','white':'白色','black':'黑色' }" listKey="key" listValue="value" name = "colorlist" label="颜色"/> <!-- name为必填属性啊!!! --> <s:debug/> </body>AllDogs.java 的java类:
package com.action;import com.Dogs.Dog;public class AllDogs {public Dog[] getDogs12() {return new Dog[] {new Dog("001","雪纳瑞"),new Dog("002","拉布拉多犬"),new Dog("003","藏獒")};}}javaBean:(Dog.java)
package com.Dogs;public class Dog { private String index; private String name; public Dog() {} public Dog(String index,String name) {this.index = index;this.name = name;}public String getIndex() {return index;}public void setIndex(String index) {this.index = index;}public String getName() {return name;}public void setName(String name) {this.name = name;} }效果:
b、combobox标签:生成一个单行文本框和下拉列表框的组合,其中下拉列表框用于辅助输入,只有单行文本框的值才包含请求参数
jsp页面:
<body> <s:form><!-- 没有form标签就无法将从下拉框中选中的值赋给单行文本框,这和它自动生成的js代码有关!!! --> <s:bean name="com.action.AllDogs" id = "newDog"/> <s:combobox list="#newDog.dogs12" listKey="name" listValue="name" name = "kindlist" label="选择你喜欢的种类种类" readonly="true" /> <s:combobox list="{'springmvc','struts2','hibernate'}" name= "colorlist" label="选择你一项专长" readonly="true"/> </s:form> <s:debug/> </body>效果:
c、doubleselect标签:生成一个级联菜单(两个下拉列表框)。注意!该标签必须要放在form标签中,且必须指定form标签的name属性(还是和生成的js代码有关)
jsp页面:
<body> <s:form name = "form1"> <s:set name = "poetrylist" value = "#{'李白':{'望庐山瀑布','将进酒','把酒问月','赠汪伦'},'杜甫':{'望岳','登楼'}}"/> <s:doubleselect name = "author" list= "#poetrylist.keySet()" doubleList="#poetrylist[top]" doubleName="poertry" labelposition="top"/> </s:form> <s:debug/> </body>
效果:
d、optgroup标签:生成一个下拉列表框的选项组,即在下拉列表框中包含多个选项组,提供分类选择
jsp页面:
<body> <s:form name = "form1"> <s:select list="#{'001':'大白鲨','002':'ET','003':'死神来了' }" label = "选择你喜欢的电影"> <s:optgroup list = "#{'004':'飞狐猛将','005':'A计划','006':'飞鹰计划' }" label = "成龙"/> <s:optgroup list = "#{'007':'黄飞鸿系列','008':'精武英雄','009':'赤子乘龙'}" label = "李连杰"/> </s:select> </s:form> </body>效果:
二)非表单标签
三、Ajax标签
- struts2--struts2标签库(部分)
- struts2 部分标签
- struts2部分标签
- 部分struts2标签用法
- struts2标签库()
- 【Struts2】Struts2学习(4)Struts2标签库
- (Struts2学习篇)Struts2标签库(表单标签)
- struts2标签库(1)
- struts2标签库(2)
- 【Struts2】(3)Struts2国际化、Struts2上传下载、Struts2标签使用
- Struts2的标签库
- struts2标签库总结
- struts2 标签库 介绍
- Struts2 标签库
- struts2标签库
- struts2标签库总结
- Struts2 标签库
- struts2标签库
- 剑指OFFER--二进制中1的个数
- c# RichTextBox用法——设置指定字符串的颜色
- 函数指针与回调函数的用法
- c++virtual的动态调用验证
- 线程状态及属性
- struts2--struts2标签库(部分)
- 【并查集入门专题1】poj1182【带权值的并查集】【思维思维~~】
- Ubuntu16.04 安装MySQL全过程~
- ReLu(Rectified Linear Units)激活函数
- 记录下 Java 中对于 String 的 replace() 方法使用不当
- MySQL索引资料总结
- 《程序员的修炼之道》笔记——注重实效的哲学
- FTP两种工作模式:主动模式(Active FTP)和被动模式
- 【简单题】矩阵翻转