Struts2(八)---通用标签&表单标签

前言:若需要使用Struts2的标签,需要添加

<%@ taglib uri="/struts-tags" prefix="s" %> 

一:通用标签
(1)property标签:用来输出一个值栈属性的值

名字 类型 默认值 说明
default String 如果value值没有给定或为null,将显示该属性值
esxape boolean true 可选,是否对HTML特殊字符进行转义
value String 来自栈顶对象 将要显示的值

(2) url标签 :动态创建一个URL

名字 类型 默认值 说明
action String 指定生成的URL为哪个action
includeParams String get 可选,指定是否包含请求参数,可以取三个值之一:get,all,one
method String 可选,指定action的方法,当用action属性来生成url时,如果指定该属性,url将链接到指定的action方法上
namespace String 可选,指定URL的命名空间
value String 可选,指定url生成的值
var String 可选,指定用来被压入contextMap中的键值

(3)param标签:用来把一个参数传递给含着它的那个标签

名字 类型 默认值 说明
name String 将传递给外层标签的参数的名字
value String 将传递给外层标签的参数的值;无论在给出value值时有没有使用%{},struts都会对它进行OGNL求值;如果想传递一个String类型的字符串作为参数值,必须把它用单括号括起来;

(4)set标签:用来在以下Map对象里创建一个键值对:
~valueStack值栈的contextMap值栈;
~Map类型的application对象;
~Map类型的session对象;
~Map类型的request对象;
~Map类型的page对象;

名字 类型 默认值 说明
name String 将被创建的属性的键
value String 指定一个表达式,将计算结果赋给变量,如果没有执行value属性,默认将栈顶对象赋给对象
scope String action 变量范围有application,session,request,page和action(默认)

注意:在使用默认scope的值,即action的范围的时候,value属性值会保存在request和OGNLContext(OGNL 上下文)中.
(5)push标签
~push标签将把一个对象压入ValueStack,而不是压入ContextMap
~push标签在标签起始时把一个对象压入栈,标签结束时将对象弹出栈

名字 类型 默认值 说明
Value String 将被压入Value Stack栈的值

(6)if,else和else if标签
~这三个标签用来进行条件测试,他们的用途和用法类似于if,else和else if关键字.其中if和else if必须要有test属性.

名字 类型 默认值 说明
test Boolean 测试条件

成绩等级:
<s:if test="#score < 60">不及格</s:if>
<s:elseif test="#score < 80">良好</s:elseif>
<s:else>优秀</s:else>

(7)iterator标签
· iterator标签用来遍历每一个数组,Collection或一个Map,并把这个可遍历对象里的每一个元素依次压入和弹出valueStack栈

名字 类型 默认值 说明
value String 将被遍历的可遍历对象
status
var String 用来引用这个遍历对象中的当前元素的变量

·iterator标签的status属性的属性值

名字 类型 默认值 说明
index Integer 各次遍历的下标值(从0开始)
count Integer 当前元素总数
first boolean 当前元素是否第一个数
last boolean 当前元素是否为最后一个元素
even boolean 当前元素是否为偶数
odd boolean 当前元素是否为奇数
modulus int 这个属性需要一个输入参数,它的返回值是count属性值除以那个参数的余数
 <s:iterator value="#request.persons">
     ${name}--${city}<br>
  </s:iterator>

  <s:iterator value="#request.persons">
    <s:property value="name"></s:property>  --- <s:property value="city"></s:property><br>
  </s:iterator>

  <br>
  <s:iterator value="persons" var="p" status="s">
   ${s.index}--${p.id}--${p.name}--${p.city}<br>
   当前元素的总数:<s:property value="#s.count"></s:property><br>
   当前元素是否为第一个元素:<s:property value="#s.first"></s:property><br>
  当前元素是否为最后一个元素:<s:property value="#s.last"></s:property><br>
  当前元素是否为偶数:<s:property value="#s.even"></s:property><br>
  当前元素是否为奇数<s:property value="#s.odd"></s:property><br>
模量:<s:property value="#s.modulus(2)"></s:property><br>

  </s:iterator>

(8)sort标签:用来对某一个可遍历对象里的元素进行排序

名字 类型 说明
comparator java.util.Comparator 在排序过程中使用的比较器
source String 将进行排序的可遍历对象
var String 用来引用因排序而新生成的可遍历对象的变量

//比较器
public class PersonComparator implements Comparator<Person>{

    @Override
    public int compare(Person o1, Person o2) {
        // TODO Auto-generated method stub
        return o1.getName().compareTo(o2.getName());
    }

}
//Action类中的目标方法

    public String testTag(){
        this.productId = 1008;
        this.productName = "LOL";
        this.description ="Game";
        this.price = 2008;
        PersonComparator pc = new PersonComparator();
        requestMap.put("pc", pc);
          persons.add(0, new Person(1,"FF","FFF"));
          persons.add(1, new Person(2,"GG","GGG"));
          persons.add(2, new Person(3,"HH","HHH"));
          persons.add(3, new Person(4,"II","III"));
          persons.add(4, new Person(5,"QQ","QQQ"));
          return "testTagSuccess";
//jsp页面
<s:sort comparator="#request.pc" source="#request.persons" var="p">
   <s:iterator value="#attr.p">
       ${id} --- ${name}  --- ${city}<br>
   </s:iterator>
</s:sort>

(9)date标签:用来对Date对象进行排版

名字 类型 默认值 说明
format String 可选,日期的格式
name String 将被排版的日期值
nice boolean false 可选,指定是否要输出指定日期和当前日期之间的时间差
var String 可选,用来引用被压入valueStack栈的日期值的变量

注:format属性的值必须是java.text.SimpleDateFormat类里定义的日期/时间格式之一
(10)a标签:将呈现一个HTML链接,这个标签可以接受HTML语言中a元素所能接受的所有属性,支持OGNL解析.
(11)
action标签:用在页面上执行一个action;
action标签还会把当前Action对象压入ValueStack值栈的ContextMap子栈;
(12)include标签:用来 把一个Servlet或JSP页面的输出包含到当前页面里来;
二:表单标签
(1)使用表单标签的优点:①表单回显 ②对页面进行布局和排版
(2)标签的属性可以被赋值为一个静态的值或一个OGNL表达式,如果在赋值时使用了一个OGNL表达式并把它用%{}括起来,这个表达式将会被求值
(3)表单标签的共同属性

名字 数据类型 说明
cssClass String 用来呈现这个元素的CSS类
cssStyle String 用来呈现这个元素的CSS样式
title String 指定HTMLtitle属性
disabled String 指定HTMLdisabled属性
label String 指定一个表单元素在HTML和ajax主体里的行标
name String 指定HTML name属性.一个输入元素的name属性将被映射到Action属性
required boolean 在HTML主题里,这个属性是否要给当前行标加上一个星号*
value String 指定一个表单元素的值

注:上述属性只有没有使用Simple主体时才可以使用
(4)form标签:用来呈现HTML语言中的表单元素

名字 数据类型 默认值 说明
action String 当前action 提交这个表单将触发的action
entype String 表单的entype属性
method String post 提交方法
namespace String 提交这个表单将触发的action所在的命名空间

(5)textfield,passworld,hidden标签
· textfield标签将被呈现为一个输入文本字段,Password标签将被呈现为一个口令字段,hidden 标签将被呈现为一个不可见字段

名字 数据类型 默认值 说明
maxlength Integer 输入字符的最大个数
readonly boolean false 用来表名该输入元素是不是只读的
size Integer 尺寸属性

· password 标签扩展自textfield标签,多了一个showPssword属性,该属性是Boolean,默认值是false,它决定着表单回显是否显示输入的密码
(6)submit标签

名字 数据类型 默认值 说明
action String Html action属性
align String Html align属性
method String method属性
type String input 这个属性决定着提交按钮的屏显效果类型,它的可取值是input,button或image

(7)textare标签将呈现为一个HTML文本域元素

名字 数据类型 默认值 说明
cols Integer HTML的cols属性
readonly boolean false 用来表名该textarea元素是不是只读的
rows integer HTML rows属性
wrap boolean Html的wrap属性

(8)checkbox标签,将呈现为一个HTML复选框元素,该复选框元素通常用于提交一个布尔值.
注:struts2的checkbox标签为单个复选框元素创建了一个配对的不可见字段,就是为了解决一个局限性(如果该复选框未被选中,在请求中就不会增加一个请求参数)
checkbox标签有一个fieldvalue属性,该属性指定的值将在用户提交表单时作为被选中的单选框的实际值发送到服务器;
(9)radio标签,将呈现一组单选按钮

名字 数据类型 默认值 说明
list String 用来充当选项来源的可遍历对象
listKey String 用来提供选项值得对象属性
listValue String 用来提供对象行标的对象属性

(10)select标签,即呈现一个select元素

名字 数据类型 默认值 说明
headerkey String false 选择列表中第一个选项的键
headerValue String 选项中第一个选项的值
list String 用来充当选项来源的可遍历对象
listkey String 用来提供选项值的对象属性
listValue String 用来提供行标的对象属性
multiple boolean false 指明是否允许多重选择(多选多)

S:optgroup可以用作s:select的子标签,用于显示更多的下拉框
注:必须有键值对,而不能使用一个集合,让其值即为键又作为值
例:

<s:select list="{11,12,13,14,15,16,17,18,19,20}" name="age" label="年龄" headerKey="请选择" headerValue="请选择" multiple="ture" >
<s:optgroup label="21-30" list="#{'21':'21','22':'22','23':'23'}"></s:optgroup>

</s:select>

效果
这里写图片描述
(11)checkboxlist标签,将呈现一组多选框

名字 数据类型 默认值 说明
list String 用来充当来源的可遍历对象
listkey String 用来提供选项值的对象属性
listvalue String 用来提供行标的对象属性

注:服务器需要使用集合类型,从而保证能够正常回显
例:

<s:checkboxlist label="城市" name="city" list="#request.cities" listKey="cityId" listValue="cityName"></s:checkboxlist>

这里写图片描述
(12)主题
修改主题的方式:
①通过UI标签的theme属性;
②在一个表单里,若没有给出某个UI标签的theme,它将使用这个表单的主体;
③在Page,Request,Session或Application中添加一个theme属性
④修改struts.properties文件中的struts.ui.theme属性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章