Struts2之数据标签(二)

Struts2之数据标签(一):http://blog.csdn.net/u012561176/article/details/46848817

1.action标签:使用此标签可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace。如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来。

(1).此标签的属性:

— id:可选属性,该属性将会作为该Action的引用ID。

— name:必填属性,指定该标签调用哪个Action。

— namespace:可选,指定该标签调用的Action所在的namespace(命名空间)。

— executeResult:可选,指定是否要将Action的处理结果页面包含到本页面。默认值为false,即不把Action的处理结果包含到本页面。

— ignoreContextParams:可选,指定该页面中的请求参数是否需要传入调用的Action,默认是false,即将本页的请求参数传入被调用的Action。

(2).接下来附上例子,新建一个Struts2项目,项目名为DataLabelTest2.

— 新建一个Action类,类名为PersonAction,代码如下:

package com.action;

import javax.servlet.ServletContext;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class PersonAction extends ActionSupport {
	private String name;
	private int age;

	public String getName() {
		return name;
	}

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

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String execute() {
		return SUCCESS;
	}

	public String welcome(){
		ServletActionContext.getRequest().setAttribute("welcome", "欢迎来到人类世界");
		return SUCCESS;
	}
}

— 接着配置一下struts.xml配置文件,代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<constant name="struts.devMode" value="true"></constant>
	<package name="default" namespace="/" extends="struts-default">
		<action name="person" class="com.action.PersonAction">
			<result>/success.jsp</result>
		</action>
		<action name="welcome" class="com.action.PersonAction" method="welcome">
			<result>/welcome_success.jsp</result>
		</action>
	</package>
</struts>

— 接着新建两个JSP文件,分别为success.jsp和welcome_success.jsp页面,代码如下:

success.jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'success.jsp' starting page</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>

  <body>
    姓名:<s:property value="name"/><br/>
    年龄:<s:property value="age"/><br/>
  </body>
</html>

welcome_sccess.jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'welcome_success.jsp' starting page</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>

  <body>
    <h3>执行结果,并将结果页面的输出包含到本页面中</h3>
    <s:action name="person" namespace="/" executeResult="true"/>
    <h3>不执行结果,调用PersonAction的welcome()方法,获取请求对象中的welcome属性</h3>
    <s:action name="welcome" namespace="/" executeResult="false"/>
    <s:property value="#attr.welcome"/>
    <h3>执行结果,并通过嵌套的param标签,设置PersonAction的name和age属性</h3>
    <s:action name="person" namespace="/" executeResult="true">
    	<s:param name="name" value="'王五'"></s:param>
    	<s:param name="age" value="30"></s:param>
    </s:action>
  </body>
</html>

— 最后,运行效果如下:

2.include标签:用于将一个JSP页面,或者一个Servlet包含到本页面中。

(1).此标签具有以下属性:

— value:必填,指定需要被包含的JSP页面或者Servlet。

— id:可选,指定该标签的ID引用。

(2).还可以为此标签指定多个param子标签,用于将多个参数值传入被包含的JSP页面或者Servlet。

(3).接着在上面那个DataLabelTest项目底下,新建一个include.jsp页面,主要代码如下:

    <s:include value="welcome_success.jsp"/>

运行后结果如下:

注:通常此标签用于所有JSP页面共有拥有的,如顶部和底部的显示。

3.url标签:用于生成一个URL地址,可以通过param标签向url标签指定参数,从而指定URL发送请求参数。

(1).此标签的属性有:

— includeParams:可选,指定是否包含请求参数。该属性的属性值只能为none,get或者all。

— scheme:可选,用于设置scheme属性。

— value:可选,指定生成URL的地址。如果不提供就用action属性指定的Action作为URL地址值。

— action:可选,指定生成URL的地址为哪个Action,如果Action不提供,就使用value属性作为URL的地址值。

— namespace:可选,该属性指定命名空间。

— method:可选,指定使用Action的方法。

— encode:可选,指定是否需要encode请求参数。

— includeContext:可选,指定是否需要将当前上下文包含在URL地址中。

— anchor:可选,指定URL的描点。

— id:可选,指定该url元素的引用id。

(2).其中action属性和value属性的作用大致相同。指定action属性,系统会在指定属性后加.action后缀。如果两个都没有指定,就以当前页作为URL的地址值。

(3).我新建一个url.jsp页面,主要代码为:

<s:url action="person"/>

运行后效果如下:

4.i18n标签和text标签:这两个标签用于对国际化提供支持.i18n标签,用于将一个资源包放入值栈中,text标签用于从资源包中获取消息。

(1).i18n标签的属性:name:指定使用的资源包的名称,如 /foo/bar/customBundle

(2).text标签的属性:name:指定使用的资源文件的属性名称。id:指定该text标签的引用ID。

5.date标签:用于格式化输入的一个日期,还可以计算指定日期和当前时刻之间的时差。

(1).此标签的属性有:

— format:可选,如指定该属性,将根据该属性指定的格式来格式化日期。

— nice:可选,值为true或者false,用于指定是否输出指定日期和当前时刻的时差。默认为false,即不输出。

— name:必填,指定要格式化的日期。

— id:可选,指定引用该元素的id值。

(2).通常,nice属性和format属性不同时指定,不指定nice属性时,该属性值为false。因为指定nice属性值为true的话,代表输出指定日期和当前时刻的时差;指定format属性,则表明将指定日期按format指定的格式来个格式化输出。

(3).如果即没有指定format属性,也没指定nice的属性值为true时,则系统会到国际化资源文件中寻找key为struts.date.format的消息,将该消息当成格式化文本来格式化日期。如果无法找到key为struts.date.format的消息,则默认采用DateFormat.MEDIUM格式输出。

(4).在DataLabelTest2项目底下,新建一个date.jsp页面,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'date.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

</head>

<body>
	<%
		Date date = new Date();
		pageContext.setAttribute("date", date);
	%>
	<!-- nice="false",且指定format="yyyy/MM/dd" -->
	<s:date name="#attr.date"  format="yyyy/MM/dd" nice="false" /><br/>
	<!-- nice="true",且指定format="dd/MM/yyyy" -->
	<s:date name="#attr.date" format="dd/MM/yyyy" nice="true"/><br/>
	<!-- 仅指定nice="true" -->
	<s:date name="#attr.date" nice="true"/><br/>
	<!-- 仅指定nice="false" -->
	<s:date name="#attr.date" nice="false"/><br/>
	<!-- 仅指定format="yyyy-MM-dd" -->
	<s:date name="#attr.date" format="yyyy-MM-dd"/><br/>
</body>
</html>

最后,运行效果如下:

6.debug标签:用于在页面上生成一个调试链接,当单击该链接时,可以看到当前ValueStack和Stack Context中的内容。

主要代码如下:

	<s:debug></s:debug>

运行效果如下:

7.以上就是Struts2数据标签中的一些标签,写得不好,请见谅,如有错误,请指出,谢谢!



版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-24 21:37:04

Struts2之数据标签(二)的相关文章

Struts2之数据标签(一)

一.Struts2的数据标签主要用于提供各种数据访问相关的功能,包括显示一个Action里的属性,以及生成国际化输出等功能.数据标签主要包括:property.set.push.param.bean.action.include.url.i18n和text.date及debug标签等. 1.property标签:用于输出value属性指定的值.可以与<s:bean>标签结合使用,一个是给bean赋值,一个是从bean中读取值. (1).如果没有指定value属性,默认输出valueStack(

Struts2(十)OGNL标签二与Struts2标签

一.Struts2标签的优势 标签库简化了用户对标签的使用 结合OGNL使用,对于集合.对象的访问功能非常强大 提供可扩展的主题.模板支持.极大简化了视图页面的编写 不依赖任何表现层技术 Struts2标签的分类: 通用标签(Generir Tags) 数据标签(Data Tags) 控制标签(Control Tags) UI标签(UI Tags) Ajax标签(Ajax Tags) 二.数据标签 web.xml <filter> <filter-name>struts2</

(二十一)Struts2 数据标签

Struts2 的数据标签主要用于操作页面上显示的数据.下面列出了主要的数据标签: action标签 此标签允许开发人员通过指定action名称和可选的命名空间直接从JSP页面调用action.标签的正文内容用于呈现action的结果.在struts.xml中为此action定义的任何结果处理程序将会被忽略,除非指定executeResult参数. <div>Tag to execute the action</div> <br /> <s:action name

struts2学习(8)struts标签1(数据标签、控制标签)

一.struts2标签简介: struts标签很多,功能强大,这是优点: 但是缺点的话,性能方面可能会,各方面速度啊啥的会降低:有人比较测试,struts性能比jstl低很多: 二.struts2数据标签: com.cy.model.Student.java: package com.cy.model; public class Student { private int id; private String name; private int age; public Student() { s

Struts2的标签库(四)——数据标签

Struts2的标签库(四) --数据标签 1.action标签 该标签用于在jsp页面直接调用一个Action,通过指定executeResult参数,还可以将Action的处理结果包含到此页面中来.此标签的属性如下: var属性:可选属性,一旦定义了该属性,该Action将被放入Stack Context的栈顶. name属性:必选属性,通过该属性指定此标签调用哪个Action. namespace属性:可选属性,通过该属性指定调用Action所在的namespace. executeRes

struts2数据标签

数据标签: 数据标签主要用于提供各种数据范文相关的功能,包含显示一个Action里的属性,以及生成国际化输出等功能, 数据标签主要包含:action,bean,date,debug,i18n,include,param,push,set,text,url,property: 1. action:用于直接在JSP页面直接调用一个Action,通过指定executeResult参数,还可以将该Action的处理结果包含到本页面中来.如果指定了executeResult参数的属性值为true,该标签还

Struts2的OGNL标签详解

一.Struts2可以将所有标签分成3类: UI标签:主要用于生成HTML元素的标签. 非UI标签:主要用于数据库访问,逻辑控制等标签. Ajax标签:用于Ajax支持的标签. 对于UI标签,则有可以分为两类: 表当标签:表单标签主要用与生成HTML页面的from元素,以及普通表单元素的标签. 非表单标签:非表单标签主要用于生成页面的树.Tab页等. 流程控制标签:主要包含用于实现分页.循环等流程的标签. 数据访问标签:主要包含用于输出ValueStack中的值,完成国际化等功能的标签. Str

Struts2中datetimepicker标签

在以前的struts2版本中s:datetimepicker只需要在head标签处设置<s:head theme="ajax"/>,就可以直接使用s:datetimepicker的标签了.而在2.1.6版本中不能直接这样使用了,将datetimepicker移除了.原因是此标签调用了dojo的datetimepicker的库.所以现在使用的时候首先要导入一个库:struts2-dojo-plugin-2.1.6.jar.然后还要设置dojo的taglib<%@ tag

struts2学习笔记(二)—— 获取登录信息及计算在线人数

实现目的: 1.点击"Login"的超链接,进入登录页面 2.填写登录信息,提交表单,将用户信息保存进Session 3.显示用户名,并计算在线人数 4.点击"Logout"的超链接,在线人数减一,并使Session失效 Struts2实现: 1.配置web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:/