struts2学习笔记之十三(表单标签和非表单标签)
来源:互联网 发布:c语言for是什么意思 编辑:程序博客网 时间:2024/05/29 17:31
表单标签
这些UI标签都可以指定cssClass,cssStyle来指定CSS样式,而且可以指定大量的onXxx属性,用于绑定JS函数
- form : 表单
- head :引入一些辅助的css样式单和js脚本
- hidden :隐藏域
- label :生成一个标签
- password : 生成一个密码框
- select :列表框
- checkbox : 只是生成一个复选框
- radio :不是生成一个单选框
- file :生成一个文件上传域
- textfield :单行文本域
- textarea :多行文本域
- submit :提交按钮
- reset :重置按钮
- combobox : 生成一个文本框与列表框的组合
- token : 防刷新
- doubleselect :两个列表框的组合,而且还有级联效果(当一个改变时,另一个也会改变)。
- optiontransferselect :两个updownselect的组合
- updownselect :增强版的select
实例
head
没有属性指定
<s:head>
查看源代码可以发现在head标签里出现了css和js脚本(如下样式)
<link rel="stylesheet" href="/FormLabel/struts/xhtml/styles.css" type="text/css"/><script src="/FormLabel/struts/utils.js" type="text/javascript"></script>
file
<s:file name="image" label="上传头像">
在各种浏览器中的显示样式不同
textarea
label,name,cols,rows
<s:textarea label="备注" name="remark" cols="30" rows="4">
cols和rows只是定义了显示出来的文本域的大小,而不是指定文本域能够输入的字符大小
radio
checkboxlist/radio/select/optgroup非常相似
<%@ taglib prefix= "s" uri="/struts-tags"%><!--有一个listXuelis类以及一个Xueli类--><s:action var="listXuelis" name="listXuelis"/><s:form > <s:select label="选择学历" name="select" list="#listXuelis.xuelis" listKey="id" listValue="name" /> <s:radio label="选择学历" name="radio" list="#listXuelis.xuelis" listKey="id" listValue="name" /> <s:checkboxlist label="选择学历" name="checkboxlist" list="#listXuelis.xuelis" listKey="id" listValue="name" /> <s:select label="选择学历" name="select" list="#listXuelis.xuelis" listKey="id" listValue="name" > <s:optgroup label="再次选择" list="#listXuelis.xuelis" listKey="id" listValue="name" /> </s:select></s:form>
combobox
<!--所在文件名不能有短划线(-)--><s:combobox list="{'java','android',' javaWeb','J2EE','J2ME','J2SE'}" name="book" ></s:combobox>
使用的过程中,如果单单写
<s:combobox list="{'java','android',' javaWeb','J2EE','J2ME','J2SE'}" name="book" />
会出现错误,点击下拉的时候上面的文本框不能改变,所以要包含在<s:form></s:form>
中
其次使用的时候,文件名里面不能有短划线(“-”),原因
updownselect
<s:updownselect label="选择学历" name="select" moveDownLabel="向下" moveUpLabel="" list="#listXuelis.xuelis" listKey="id" listValue="name" />
optiontransferselect
<s:optiontransferselect label="选择学历" name="select" moveDownLabel="向下" list="#listXuelis.xuelis" listKey="id" listValue="name" doubleList="{'wuxi','sdag',''er}" doubleName="dsag" />
doubleselect
<!--所在的form必须有一个action,该值可以是存在或不存在的action name--><s:form action="asg"><s:doubleselect list="{'西游记','水浒传'}" doubleList="top=='西游记'?{'sun','zhu','tang'}:{'lu','wu','lin'}" doubleName="renwu" label="选择喜欢的任务"/></s:form><s:set var="renwu" value="#{'西游记':{'sun','zhu','tang'},'水浒':{'lin','lu'},'三国':{'kong','liu'}}"><s:form action="asg"><s:doubleselect name="asdg" list="#renwu.keySet()" <!--[]获取Map对应的value,top表示上一个list的选择--> doubleList="#renwu[top]" doubleName="renwu" label="选择喜欢的任务"/></s:form>
token
默认情况下,如果没有进行防刷新控制,每一次刷新都会添加一条完全相同的记录
(1)需要在表单页面上增加s:token
(2)在form对应的Action启用一个拦截器<interceptor-ref name="token"/>,<interceptor-ref name="defaultStack"/>
(默认拦截器)
如果action没有指定拦截器,将使用默认的拦截器,而使用了其他拦截器,则需要显示调用默认拦截器
<interceptor-ref name="token"/>
会检测用户的刷新,当检测到用户刷新页面时,会返回一个invalid.token的逻辑视图名(因此需要result一个物理视图)
(3)为invalid.token配置一个物理视图资源
<!--此处一个简单的表单页,action省略--><s:form action="addUserPro"> <s:textfiled name="user.name" label="用户名" /> <s:testfiled name="user.pass" label="密码" /> <s:submit value="添加" /></s:form>
<s:form action="addUserPro"> <s:textfiled name="user.name" label="用户名" /> <s:testfiled name="user.pass" label="密码" /> <!--s:token没有属性,就是用来做防刷新--> <s:token /> <s:submit value="添加" /></s:form>
<table width="400" border="1"> <s: iterator value="users" var="u"> <tr> <td>${u.id}</td> <td>${u.name}</td> <td>${u.pass}</td> </tr> </s:iterator></table>
非表单标签
- actionerror :体现的是struts2的消息机制
- actionmessage :体现的是struts2的消息机制
- fielderror :输出类型转换失败、输入校验失败后的错误提示
actionerror/actionmessage
当需要把action中的一段文本,传入下一个页面显示时,就可以借助struts2的消息机制
1)Action中可通过addActionError()或addActionMessage()来添加消息
2)接下来可以在下一个页面中使用<s:actionerror>或<s:actionmessage>
输出消息
实例
- struts2学习笔记之十三(表单标签和非表单标签)
- struts2学习笔记(十一)——表单和非表单标签
- Struts2 表单和非表单标签
- Struts2标签库(四)之非表单标签
- struts2 的tree和treenode标签(非表单标签)
- 《struts2权威指南》学习笔记之struts2表单标签
- struts2常用标签库之非表单标签
- Struts2中UI标签之非表单标签
- Struts2 form表单常用标签学习笔记
- struts2的 component标签(非表单标签)
- Struts2学习笔记(十):Strut2表单标签详解
- (Struts2学习篇)Struts2标签库(表单标签)
- struts2学习笔记之十三(数据标签)
- struts2标签和表单验证
- HTML5学习笔记之表单标签
- struts2常用标签库之表单标签
- Struts2标签库(三)之表单标签
- struts2 checkboxlist标签(表单标签)
- 自动化及工具介绍
- EditText属性
- Huffman编码学习
- SDUT-2862 勾股定理
- linux vim 置配
- struts2学习笔记之十三(表单标签和非表单标签)
- 流与文件:NIO.2的介绍和使用
- 第三章124页40题
- 文章标题
- Android源代码结构分析
- Apache axis2+Eclipse+Web service 安装部署经验总结
- 测试理论:一种改善测试业务积累和工作量评估的方法
- P124.46(计算Fibonacci数.)
- maya开洞的几种方法总结之二