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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

名字类型默认值说明
indexInteger各次遍历的下标值(从0开始)
countInteger当前元素总数
firstboolean当前元素是否第一个数
lastboolean当前元素是否为最后一个元素
evenboolean当前元素是否为偶数
oddboolean当前元素是否为奇数
modulusint这个属性需要一个输入参数,它的返回值是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标签:用来对某一个可遍历对象里的元素进行排序

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

//比较器
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对象进行排版

名字类型默认值说明
formatString可选,日期的格式
nameString将被排版的日期值
nicebooleanfalse可选,指定是否要输出指定日期和当前日期之间的时间差
varString可选,用来引用被压入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)表单标签的共同属性

名字数据类型说明
cssClassString用来呈现这个元素的CSS类
cssStyleString用来呈现这个元素的CSS样式
titleString指定HTMLtitle属性
disabledString指定HTMLdisabled属性
labelString指定一个表单元素在HTML和ajax主体里的行标
nameString指定HTML name属性.一个输入元素的name属性将被映射到Action属性
requiredboolean在HTML主题里,这个属性是否要给当前行标加上一个星号*
valueString指定一个表单元素的值

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

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

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

名字数据类型默认值说明
maxlengthInteger输入字符的最大个数
readonlybooleanfalse用来表名该输入元素是不是只读的
sizeInteger尺寸属性

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

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

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

名字数据类型默认值说明
colsIntegerHTML的cols属性
readonlybooleanfalse用来表名该textarea元素是不是只读的
rowsintegerHTML rows属性
wrapbooleanHtml的wrap属性

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

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

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

名字数据类型默认值说明
headerkeyStringfalse选择列表中第一个选项的键
headerValueString选项中第一个选项的值
listString用来充当选项来源的可遍历对象
listkeyString用来提供选项值的对象属性
listValueString用来提供行标的对象属性
multiplebooleanfalse指明是否允许多重选择(多选多)

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标签,将呈现一组多选框

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

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

<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属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值