`

原创:Struts2数据标签的解析

阅读更多
    数据标签主要用于提供各种数据访问相关的功能,比如显示一个Action里的属性,以及生成的国际化输出等。
    Struts2数据标签主要分为以下几种:
         property:用于生成输出某个值 值包:valueStack、StackContext和ActionContext中的值
         bean:该标签用于创建一个JavaBean实例,如果指定了id属性,则可以将创建的Javabean实例存放入Stack Context中。
         set:用于设置一个新变量,并将该新变量放入指定的范围内
         url:用于生成一个URL地址
         text:用于输出国际化信息
         param:用于设置一个参数,通用用做bean标签 URL标签的子标签
         date:用于输出一个日期
         debug:用于在页面上生成一个连接,当点击链接时,可以看到ValueStack 和 Stack Context中的内容
         include:用于在JSP页面中包含其他的jsp资源等
         i18n:用于指定国际化资源文件的baseName
         action:该标签用于在JSP页面直接调用一个Action,通过指定executeResult参数,还可以将该Action的处理结果包含到

本页面中
         push:用于将某个值放入ValueStack的栈顶。

以下是部分标签的案例供学员参考:
/**首先创建一个JavaBean 供bean标签使用*/
package edu.bean;

import java.io.Serializable;

public class Admin implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int id;
	private String name;
	private String pass;

	public Admin() {

	}

	public Admin(int id, String name, String pass) {
		this.id = id;
		this.pass = pass;
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}
	
	public void study(){
		System.out.println("管理员正在学习管理的方式.....");
	}

}

/**以下是视图层中的案例原码供学员参考*/

	<body>
	        <h1>
			数据标签案例
		</h1>
		<!--bean用于创建一个JavaBean实例
                 name属性:必填属性 该属性指定要实例化的JavaBean的实现类。
                 id属性:该属性是一个可选属性.如果指定了该属性,则该JavaBean实例会被存入Stack Context中,从
                 而允许直接通过id属性来访问该JavaBean实例
                -->
		<s:bean name="edu.bean.Admin" id="p">
			<!-- 使用param标签为Java实例传入参数  name是属性名称  value是属性值-->
			<s:param name="id" value="12"></s:param>
			<s:param name="name" value="'redarmy'"></s:param>
			<s:param name="pass" value="'123'"></s:param>
			<!--备注:在value属性值中我们使用了" '  ' " 既外层是""内层是'' 为什么呢?
                         其实暗藏玄机,如果没有加''那么它redarmy当成变量来取值,而不是看成字符串。
                         所以要想看成字符串必须加单引号,而对于整数无此要求
                        -->
		</s:bean>
		<!--在使用bean标签的时候 要获取p的实例加#前缀-->
		<s:set name="entity" value="#p"></s:set>
		<s:property value="#entity.name" />
		

		<!--在这里你明白为什么加''吗?如果还是不明白请参考上面-->
		<s:set name="username" value="'redarmyChen'" scope="session"></s:set>
		<s:property value="#session['username']" />
		

		<!-- URL标签中的method方法 指明的是Action中的处理方法 -->
		<s:url action="./adminLogin.action" namespace="/" id="login">
			<s:param name="name" value="'redarmy'"></s:param>
			<s:param name="pass" value="'123'"></s:param>
		</s:url>
		<s:a href="%{login}">用户登录</s:a>
		

		<!-- 用于输出日期的标签 -->
		<%
			Date nowdt = new Date(300000000);
			//将nowdt存入到PageContext里的属性
			pageContext.setAttribute("nowdt", nowdt);
		%>
		<!-- 默认的格式:YYYY-MM-DD HH:mm:ss -->
		<s:date name="#attr.nowdt" />
		

		<!-- format:是一个可选属性 如果指明该属性 则就按照指明的格式输出 -->
		<s:date name="#attr.nowdt" format="dd/MM/yyyy" />
		

		<!-- nice:是一个可选属性,true|false 它用于指定是否输出指定日期和当前日期之间时差-->
		

		<s:date name="#attr.nowdt" nice="true"></s:date>
		<!-- 怎么输出国际化信息呢 可以采用如下方式 -->
		<s:property value="%{getText('helloworld')}" />
		<s:text name="helloworld"></s:text>
		<!--生成一个debug的链接 链接中显示ValueStack Stack Context中的所有的值信息-->
		<s:debug></s:debug>
	</body>
/**以下是struts.xml文件*/
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 

"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<!-- 国际化资源文件的声明  -->
	<constant name="struts.custom.i18n.resources" value="globalMessages"></constant>
	<package name="sts" extends="struts-default" namespace="/">
		<!-- 全局的结果 -->
		<global-results>
			<result name="input">/admin/error.jsp</result>
		</global-results>
		<!-- action处理 -->
		<action name="adminLogin" class="edu.saction.AdminAction"
			method="login">
			<result>/admin/main.jsp</result>
		</action>
	</package>

</struts>   

/**以下是globalMessages_zh_CN.properties文件内容*/
helloworld=\u6B22\u8FCE.....


希望以上内容对学员学习struts2的数据标签有所帮助,以上内容属个人上课记录,如要转发请注明出处。愿你有所收获!

分享到:
评论
1 楼 Far_ranqing 2011-05-04  
!!!

相关推荐

    第五章:struts2标签库

    第五章:struts2标签库

    struts2标签解析

    Struts2框架的标签库基于OGNL(Object-Graph Navigation Language)表达式语言,使得在JSP页面中处理业务数据和控制流程变得更加方便。下面将详细介绍几个常用且相对复杂的Struts2标签。 1. `s:textfield`: 这个标签...

    Struts2技术内幕 深入解析Struts架构设计与实现原理

    ### Struts2技术内幕:深入解析Struts架构设计与实现原理 #### Struts2概述 Struts2是Apache Software Foundation支持的一个开源项目,它是Struts1的下一代版本,继承了Struits1的优点,并在此基础上进行了大量的...

    IBM Struts2培训PPT.7z

    IBMStruts2培训PPT (大全集) ...第五章:struts2标签库.ppt 第六章:struts2国际化.ppt 第七章:Struts2验证机制.ppt 第八章:struts2文件上传下载.ppt 第九章:struts2拦截器.ppt + Struts2开发详解.ppt

    struts2标签库例子

    Struts2 标签库详解 Struts2 提供了一个强大的标签库,用于简化 Web 应用程序的开发过程。这些标签可以分为两类:通用标签和 UI 标签。下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来...

    struts2标签使用例子

    在Struts2框架中,标签库是其一大特色,它提供了丰富的自定义标签,使得开发者能够更加便捷地创建动态页面。这些标签极大地简化了JSP页面的编写,提高了代码的可读性和可维护性。 1. **Struts2核心标签库**: - `s...

    Struts2 技术内幕-深入解析Struts2架构设计与实现原理

    《Struts2技术内幕-深入解析Struts2架构设计与实现原理》这本书深入探讨了Struts2的核心概念、架构和实现机制。 1. **Struts2架构设计**:Struts2的架构基于拦截器(Interceptor)模式,它将业务逻辑和表现层解耦,...

    struts2 自定义标签

    在Struts2中,自定义标签是提高代码可读性和可维护性的重要工具。本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。 一、Struts2自定义标签的概念 自定义标签是JSP的一种扩展,允许...

    struts2解析文件

    - **ValueStack**: Struts2中的ValueStack是一个对象栈,用于存储ActionContext中的数据。它可以简化视图层的数据访问,只需通过OGNL表达式即可访问栈中的对象。 - **OGNL(Object-Graph Navigation Language)**: ...

    教案第五章struts2的标签库.pdf

    Struts 2 标签库可以分为三类:UI 标签、数据标签和逻辑标签。UI 标签用于生成用户界面,数据标签用于显示和输出数据,逻辑标签用于控制流程和逻辑判断。 Struts 2 标签库提供了强大的功能和灵活的使用方式,帮助...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    ### Struts2技术内幕——深入解析Struts2架构设计与实现原理 #### 一、Struts2概述 Struts2是Struts框架的第二代版本,它是在Struts1的基础上进行了大量的改进和完善后诞生的。Struts2不仅继承了Struts1的核心思想...

    Struts2自定义分页标签

    本资源详细介绍了如何在Struts2中自定义分页标签,使得开发过程更加便捷。 在Struts2中,分页通常涉及到以下几个关键步骤: 1. **创建Action类**:首先,你需要创建一个Action类,该类将处理用户的请求,包括获取...

    struts2的标签应用

    首先,了解Struts2的标签库分为两个主要部分:动作标签和数据标签。动作标签主要用于处理业务逻辑,如表单提交、重定向等,而数据标签则专注于显示和格式化数据,如循环、条件判断、显示字段等。 1. 动作标签: - ...

    Struts2表单标签使用范例

    在Struts2中,表单标签是用于处理用户输入和展示数据的关键组件,它们使得视图层的构建更加简洁和高效。本示例将深入探讨Struts2的表单标签使用方法,帮助开发者更好地理解和应用这些标签。 首先,我们来了解一些...

    基于struts2 自定义标签 分页

    在这个基于Struts2的自定义分页标签的实践中,我们将深入探讨如何创建、配置和使用自定义标签来实现数据的分页展示,同时与Oracle数据库进行交互。 首先,理解分页的基本概念至关重要。分页是将大量数据分成小块,...

    struts八步教程:struts让我试着了解你

    10. **插件和扩展**:Struts2有丰富的插件体系,如Tiles插件用于页面布局,Struts2-dojo插件支持Ajax操作,还有其他如Struts2-json插件处理JSON数据等。 通过以上八个步骤的学习,你可以逐步掌握Struts2的基本用法...

    Struts2技术内幕:深入解析Struts架构设计与实现原理

    这本书《Struts2技术内幕:深入解析Struts架构设计与实现原理》详细地探讨了Struts2的核心机制和工作原理,旨在帮助读者深入理解并熟练运用这个框架。 1. **Struts2架构**:Struts2框架的核心架构基于拦截器...

    struts2常用标签详解

    本文将深入解析Struts2中的常用标签,这些标签在实际开发中非常实用,对于初学者理解并掌握Struts2的运行机制至关重要。 首先,我们需要了解Struts2标签库的主要组成部分,它们分为Action、Display、Logic、Field和...

    Struts2实例 国际化 类型转换 struts标签

    这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查。 首先,我们来看Struts2的核心概念。Struts2作为MVC框架,它负责处理HTTP...

Global site tag (gtag.js) - Google Analytics