Struts标签库

在JSP页面中,使用标记库代替传统的Java代码来实现页面的显示逻辑是大势所趋,然而,由于自定义标记很容易造成重复定义和非标准的实现,于是出现了基于java Web的JSTL和基于struts的taglib等标签库来解决这些问题。

这些标签库在实现原理上相差无几,学会一种,另一种也就很容易上手,那咱们就从Struts的标签库走起。

常用的strust标签库有<bean:write>、<logic:empty>和<logic:notEmpty>、<logic:present>和<logic:notPresent>、<logic:iterator>4种。

使用方法:

1.在strus-config.xml中配置message-resources,注意,这个标签要放在action-mappings标签后面。配置信息如下:

<message-resources parameter="MessageResources" />

2.在src目录下引入提供国际化资源文件MessageResources.properties

3.在JSP页面中引入taglib

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>

4.下面是分别是<bean:wriete>(获取字段值、JavaBean属性值)、<logic:empty>和<logic:notEmpty>(判断是否为空)、<logic:present>和<logic:notPresent>(判断是否存在)、<logic:iterator>(迭代取出集合中的数据)分别在Action和JSP页面的配置

(1)<bean:wriete>-->action

public class BeanWriteAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// 普通字符串
		request.setAttribute("hello", "quwenzhe");
		request.setAttribute("today", new Date());

		Group group = new Group();
		group.setName("提高班");

		User user = new User();
		user.setUsername("quwenzhe");
		user.setAge("24");
		user.setGroup(group);

		request.setAttribute("user", user);

		return mapping.findForward("success");
	}
}

<bean:wriete>-->JSP

姓名:<input type="text" name="username" value="<bean:write name="user" property="username"/>"><br/>
年龄:<input type="text" name="age" value="	<bean:write name="user" property="age"/>"><br>
所属组:<input type="text" name="group" value="	<bean:write name="user" property="group.name"/>"><br/>

(2)<logic:empty>和<logic:notEmpty>、<logic:present>和<logic:notPresent>-->action

public class EmptyPresentAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		request.setAttribute("attr1", null);
		request.setAttribute("attr2", "");
		request.setAttribute("attr3", new ArrayList());

		return mapping.findForward("success");
	}
}

<logic:empty>和<logic:notEmpty>、<logic:present>和<logic:notPresent>-->JSP

		<p>
		<logic:empty name="attr1">
			attr1为空
		</logic:empty>
		<logic:notEmpty name="attr1">
			attr1为空
		</logic:notEmpty>
		<logic:present name="attr1">
			attr1存在
		</logic:present>
		<logic:notPresent name="attr1">
			attr1不存在
		</logic:notPresent>
		</p>

		<p>
		<logic:empty name="attr2">
			attr2为空
		</logic:empty>
		<logic:notEmpty name="attr2">
			attr2为空
		</logic:notEmpty>
		<logic:present name="attr2">
			attr2存在
		</logic:present>
		<logic:notPresent name="attr2">
			attr2不存在
		</logic:notPresent>
		</p>

		<p>
		<logic:empty name="attr3">
			attr3为空
		</logic:empty>
		<logic:notEmpty name="attr3">
			attr3为空
		</logic:notEmpty>
		<logic:present name="attr3">
			attr3存在
		</logic:present>
		<logic:notPresent name="attr3">
			attr3不存在
		</logic:notPresent>
		</p>

(3)<logic:iterator>-->action

public class IteratorAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		Group group = new Group();
		group.setName("提高班");

		List userList = new ArrayList();

		for (int i = 0; i < 10; i++) {
			User user = new User();
			user.setUsername("quwenzhe-->" + i);
			user.setAge("24-->" + i);
			user.setGroup(group);

			userList.add(user);
		}
		request.setAttribute("userList", userList);
		return mapping.findForward("success");
	}
}

<logic:iterator>-->JSP

		<table border="1">
			<tr>
				<td>姓名</td>
				<td>年龄</td>
				<td>所属组</td>
			</tr>
			<logic:empty name="userList">
				<tr>
					<td colspan="3">没有符合条件的数据</td>
				</tr>
			</logic:empty>
			<logic:notEmpty name="userList">
				<logic:iterate id="user" name="userList">
					<tr>
						<td>
							<bean:write name="user" property="username"/>
						</td>
						<td>
							<bean:write name="user" property="age"/>
						</td>
						<td>
							<bean:write name="user" property="group.name"/>
						</td>
					</tr>
				</logic:iterate>
			</logic:notEmpty>
		</table>

这样我们在后台Action中通过request设置的值,在JSP页面中通过标签就能很方便的获取到,大大提高工作效率。

时间: 2024-12-24 19:50:01

Struts标签库的相关文章

在EL表达式或者Struts标签库中格式化日期对象,即将Date转换为yyyy-MM-dd格式

一.EL表达式 首先,在jsp页面引入<fmt> tags,<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>. 其次,将EL表达式作为fmt标签属性的value值.再增加pattern参数,为日期制定需要格式化的格式,如yyyy-MM-dd.例如: <fmt:formatDate value="${object.dateproperty}&quo

Struts标签库详解【3】

struts2标签库详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif  else 描述: 执行基本的条件流转. 参数: 名称 必需 默认 类型 描述 备注 test 是 boolean 决定标志里的内容是否显示的表达式 else标志没有这个参数 id 否 Object/String 用来标识元素的

Struts标签库详解,非常好的Struts标签详解

Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML 标签:         用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean 标签:         在访问JavaBeans 及其属性,以及定义一个新的bean 时使用 Logic 标签:          管理条件产生的输出和对象集产生的循环 Template 标签:   随着Tiles框架包的出现,此标记已开始减少使用 Nested 标签: 

Struts学习(一)Struts标签库的运用

什么是标签库? JSP标签库,也称自定义标签库,可看成是一种通过JavaBean生成基于XML的脚本的方法.从概念上讲,标签就是很简单而且可重用的代码结构.比方说,在最新发布的JSPKit(在JSP Insider内)中,使用XML标签实现了对XML文档的轻松访问. 简单的说类似与前端的jar,便于开发前端,直接使用已开发的标签. 常见的标签库有:JSTL等 struts1标签库与其他标签库的区别? struts1是基于struts框架所开发的,脱离了struts框架,无法使用,而其他标签库没有

Struts标签库详解【1】

struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif  else 描述: 执行基本的条件流转. 参数: 名称 必需 默认 类型 描述 备注 test 是 boolean 决定标志里的内容是否显示的表达式 else标志没有这个参数 id 否 Object/String 用来标识元素的i

struts 标签库注解

在struts2中有着一套像html一样的标签,俗称struts2标签,大多数公司使用ssh都是使用html标签,但为了保持项目的统一性,有的公司还是使用的struts2的标签,下面是一些常用的struts2标签:  a    a标签创建一个HTML超链接,等价于HTML 的<a  href="".... 示范代码: <s:a href="login.action">登陆</s:a>  action    使用action标签 可以允许

Struts2:标签库

使用struts标签库的jsp需要引入标签库<%@taglib prefix="s" uri="/struts-tags"%>url来自哪里? struts2-core-2.3.16.1.jar →META-INF     →struts-tags.tld         →Line11:<uri>/struts-tags</uri> 控制标签:分枝循环 <!-- [分枝结构if else] --> <s:if

JAVA EE 学习笔记[V5 struts2框架标签库]

Going on 在上次我们浅试水Struts2框架之后只不过建立了一个轻型的Struts2项目,其中已经应用到了Struts2的一些标签: 在JSP页面中引入标签库(使用@taglib命令): <%@ taglib uri="/struts-tags" prefix="s" %> 其次是使用标签库: <s:fielderror key="dataErr"></s:fielderror> 这个标签提供了错误信息

【转】Struts1.x系列教程(4):标签库概述与安装

转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/15/251411.html Struts的整个视图层(就是MVC模式中的View层)是由Struts的定制标签(或者称为定制动作)和客户端代码(Javascript.HTML等)实现的.这些Struts标签被写在JSP页面中,用于生成客户端代码.进行逻辑判断等工作,使用Struts标签可以尽量