5.struts2.5-标签

1.Strut2标签的分类

Struts2标签库主要分为两类:普通标签Ui标签

普通标签的主要功能是在页面生成时控制页面代码的执行过程。

UI标签的主要功能是以丰富且可复用的HTML文件显示数据。

普通标签又分为控制标签数据标签

控制标签用于完成条件逻辑和循环逻辑的控制,也可以做集合的操作

数据标签用于输出后台的数据和完成其他数据的访问功能

UI标签又分为表单标签,非表单标签和Ajax标签。

表单标签用于生成HTML页面中的表单元素

非表单标签主要用于生成非表单的可视化元素,如输出Action中封装的数据

Ajax标签主要用于提供对Ajax的支持。

2.Struts2标签的使用

1.<s:if>

2.<s:elseif>

3.<s:else>

4.<interator>

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<table border="1">
		<s:iterator var="name" value="{'apple','orange','pear','banana'}"
			status="st">
			<s:if test="#st.odd">
				<tr style="background-color: red;">
					<td><s:property value="name" /></td>
				</tr>
			</s:if>
			<s:else>
				<tr style="background-color: grey;">
					<td><s:property value="name" /></td>
			</s:else>
		</s:iterator>
	</table>
</body>
</html>

<s:iterator>标签里面指定了status的值为st,然后用st.odd来返回当前遍历的元素的索引是否为奇数

2.Struts2的数据标签

<s:property>

用于输出指定的值,通常输出的是value属性指定的值,有以下属性

1.value    可选属性,指定需要输出的值,如果没有,默认输出栈顶元素

2.id   可选   该元素的标识

3.default  可选 ,如果要输出的属性值为null,则显示default的默认属性

4.escape 可选属性,指定是否忽略HTML代码。默认是true,忽略HTML代码。

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<s:property value="'this is caizhen'"/>
	<s:property value="" default="6666"/>
	<s:property value="'<h1>www.baidu.com<h1>'"  escape="false"/>
	<s:property  value="'<h1>www.baidu.com'"/>
</body>
</html>

escape似乎不起作用。

<s:a>

<s:debug>

<s:include>

<s:param>

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Struts标签</title>
</head>
<body>
	<s:a href="http://www.baidu.com">百度</s:a>  
	<s:include value="test.jsp">
	<s:param name="color">red</s:param>
	</s:include>
	
</body>
</html>

test.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<% out.print(request.getParameter("color")); %>
<%   %>
</body>
</html>

Struts2标签的模板和主题

Struts2的UI标签都是基于模板和主题的。

Struts2提供了四种主题

1.simple   生成基本的HTML元素

2.xhtml  对simple主题进行了扩展,提供了布局功能,Label显示名称以及与验证框架和国际化框架的集成

3.css_xhtml  该主题是对xhtml的扩展,在xhtml的基础上添加了对css支持和控制

4.Ajax   继承自xhtml,提供Ajax的支持。

修改页面主题在strut.xml里面修改

<constant name="struts.ui.theme" value="simple"/>

Struts2的表单标签

用于向服务器提交用户输入的信息

<s:form>

<s:textfield>

<s:textarea>

<s:password>

<s:radio>

<s:reset>

<s:submit>

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Struts标签</title>
</head>
<body>
	<s:form action="login">
		<s:textfield label="昵称" name="nickname" />
		<s:textfield label="用户名" name="username" />
		<s:password label="密码" name="password" />
		<s:password label="确认密码" name="password2" />
		<s:radio name="sex" label="性别" list="#{'0':'男','1':'女' }" value="0" />
		<s:textarea label="个性签名" name="description" rows="3" cols="17" />
		<s:checkboxlist labelposition="top" name="fruit" label="喜欢的水果"
			list="{'苹果','橘子','香蕉'}" />
		<s:checkboxlist list="#{'a':'羽毛球','b':'篮球','c':'足球'}" name="sport"
			label="喜欢的运动" labelposition="top" listKey="key" value="value" />
		
		<s:select name="city" list="#{'BJ':'北京','SH':'上海' }"  label="请选择你想去的城市"
			listKey="key" listValue="value">
			<s:optgroup label="湖北" list="#{'WH':'武汉','XG':'孝感' }" listKey="key"
				listValue="value" />
       </s:select>
       <s:file name="file" accept="text/*" label="上传文件"/> 
		<s:reset value="重置" />
		<s:submit value="注册"></s:submit>
	</s:form>
</body>
</html>

非表单标签

1.<s:actionmessage>    如果Action实例的getActionMessage()方法返回不为null,则该标签输出该方法返回的系列消息

2.<s:actionerror>  如果Action实例的getActionError()方法返回不为null,则该标签输出该方法返回的系列消息

3.<s:filederror> 如果Action实例存在表单域的类型转换错误和校验错误

this.addActionMessage(" str");
this.addActionError("666");
this.addFileldError("msg","8888");


<body>
<s:actionmessage>
<s:actionerror>
<s:fielderror>
<s:fielderror value="msg">  <!--有无value效果一样-->

,则该标签输出该方法返回的系列消息

猜你喜欢

转载自blog.csdn.net/cainame/article/details/81264247
今日推荐