您的位置:首页 > 编程语言 > Java开发

struts 2 标签 总结

2015-08-23 10:04 633 查看
处理请求的流程:

客户端通过浏览器发送一个请求,服务器由Struts的核心过滤器接受请求;查找struts.xml中,是否有对应的action,如果没有对应的action,则提示404的错误;如果找到了匹配的action,则创建action的代理;调用action中的set方法封装请求中的参数;调用action中execute()方法,根据execute()方法返回的字符串,查找struts.xml中对应的result,如果找不到匹配的result,则提示404错误;如果找到匹配的result,则跳转到result指定的页面;在页面上调用action的get方法进行一行数据的显示;将结果返回给客户端。

Struts2
标签库的使用

Struts2
标签库的分类

通用标签

控制标签

数据标签

UI标签

FORM
标签

非FORM标签

AJAX标签

导入struts的标签库

如果只是使用非AJAX类的标签,则只需要引入如下标签库:

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

如果使用AJAX标签,则首先需要在项目中引入这个jar包;然后使用taglib指令导入struts的ajax标签库;

<%@tagliburi="/struts-dojo-tags"prefix="sd"%>

FORM
标签库的使用

1、form
标签的使用

<s:formaction="addUser"method="post"theme="xhtml">

</s:form>

action 属性:表示要将请求提交到那个action

method 属性:提交请求的类型;(get| post)

theme 属性:表示使用的主题;

xhtml :以表格的方式组织表单控件;

simple :没有使用任何样式组织表单元素;
ajax
:ajax主题
textfield 标签的使用:用来生成HTML中的<inputtype="text" />控件

<s:textfieldid="userName"name="userName"label="用户名"

theme="xhtml"value="careers"tooltip="请输入用户名"/>

label 属性:用来生成控件前面的说明文字;

tooltip 属性:用来生成控件前面的提示图标;

注意:label、tooltip属性是建立在theme属性为xhtml的基础上的;
password 标签的使用:用来生成HTML中的<inputtype="password" />控件

<s:passwordid="userPwd"name="userPwd"label="密码"tooltip="请输入密码"
maxlength="15"value="123456"showPassword="true"/>
maxlength
属性:指定允许输入的最大字符个数;
value
属性:struts2默认对于密码框,设置value属性是不生效的,只有将showPassword属性设置为true时,密码框中才会显示值;
select 标签的使用:用来生成HTML中的<select>控件

<s:selectlist="{'北京','天津','上海'}"label="城市"

name="address"headerKey="0"headerValue="请选择..."/>

list属性:指定你使用那一个集合生成select的<option>选项

headerKey 属性:指定第一个下拉列表项(option)对应的value属性;

headerValue 属性:指定第一个下拉列表项显示的内容;
<s:selectlist="#{'10':'教学部','20':'市场部','30':'研发部'}"

value="'20'"listKey="key"listValue="value"name="dept"label="部门"/>

list 属性:可以指定一个map集合

listKey 属性:用来指定生成的下拉列表项(option)的value属性对应"集合"中那一个属性;

listValue 属性:用来指定生成的下拉列表项的展示内容对应"集合"的那一个属性

value 属性:指定默认显示那一个下拉列表项
radio 标签的使用:用来生成HTML中的<inputtype="radio" />控件

<s:radiolist="{'男','女','保密'}"name="gender"label="性别"/>
<s:radiolist="#{'m':
'男', 'f' : '女','s'
: '保密'}"value="'s'"

listKey="key"listValue="value"name="sex"label="性别"/>

value 属性:用来指定默认选中那一个
checkboxlist 标签的使用:用来生成一组<input type="checkbox" />控件

<s:checkboxlistlist="#{'001':
'篮球','002':
'足球','003':'排球'}"

name="hobby"label="兴趣"value="{'001','002'}"/>
checkbox 标签的使用:用来生成一个<inputtype="checkbox" />控件

<s:checkboxname="agree"label="同意"key="0"/>
textarea 标签的使用:用来生成<textarea/>控件

<s:textareaname="description"label="简介"

rows="5"cols="40"/>
submit 标签的使用:用来生成<input type="submit" />控件

<s:submitvalue="添加用户"/>

注意:除非你要在后台应用程序中接受按钮的值,否则不要给按钮添加name属性;因为struts会对请求中每一个参数去调用对应的setXx方法进行封装值;如果找不到对应的setXx方法,后台就会报错;
AJAX标签之datatimepicker的使用

配合<sd:head/>使用

<sd:datetimepickername="birthday"label="出生日期"

displayFormat="yyyy/MM/dd"/>
数据标签的使用

作用:专门用来在页面输出各种对象范围内的值;替换el表达式

1、property标签的使用

<s:propertyvalue="userName"/>

value属性指定你要显示的值的属性名称
2、date标签的使用

<s:datename="birthday"format="yyyy-MM-dd"/>

name 属性指定你要显示的值的属性名称
控制标签

选择结构标签的使用

<s:iftest="userName==
'careers'">
普通用户
</s:if>
<s:elseiftest="userName==
'admin'">
管理员
</s:elseif>
<s:else>
不是合法用户

</s:else>

test 属性:需要指定一个布尔类型的值;
循环结构标签的使用

<s:iteratorvalue="#request.users"var="user"
begin="2"end="8"step="2"status="st">
<s:propertyvalue="#st.index"/>    
<s:propertyvalue="#user.name"/>    
<s:propertyvalue="#user.age"/>    
<s:propertyvalue="#user.email"/><br/>

</s:iterator>

value 属性,指定你要遍历那一个集合;

var 属性,指定你从集合出取出一个对象的名字;

begin 属性,指定从第几个开始遍历(默认从0开始);

end 属性,指定遍历到第几个结束;

step 属性,指定遍历时,每次走多少步;

status 属性,用来标识遍历的状态;
OGNL(ObjectGraph Navigation Language)表达式:对象图导航语言

OGNL 维护了一个context map;

创建数组

语法:{ele1,ele2}

创建Map

语法:#{key1: value1,key2 : value2}

示例:#{'10': '教学部',
'20' : '市场部',
'30' : '研发部'}

使用OGNL表达式取得各个对象范围内的值

1)取得root部分的值(Action中的属性值),在取值是不需要加#;

例如:<s:propertyvalue="userName" />

取得非root部分的值(如request,session,application等),在取值时,需要加#

例如:取得request范围内name属性;

<s:property value="#request['name']" />



<s:property value="#request.name" />

取得session范围内的属性值

<s:property value="#session.sessionName" />

% 运算:强制将字符串看成是OGNL表达式;专门用来取值;

<s:textfieldname="userName"value="%{userName}"/>

补充:将取得的值放到表单控件中

1)普通的HTML控件

<inputtype="text"value="<s:propertyvalue='userName'/>"/>

表单控件是用struts提供的标签完成的

<s:textfieldname="userName"value="%{userName}"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: