原创:Struts2数据标签的解析
2010-12-13 17:38
344 查看
数据标签主要用于提供各种数据访问相关的功能,比如显示一个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的栈顶。
以下是部分标签的案例供学员参考:
Java代码
/**首先创建一个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" />
<br />
<!--在这里你明白为什么加''吗?如果还是不明白请参考上面-->
<s:set name="username" value="'redarmyChen'" scope="session"></s:set>
<s:property value="#session['username']" />
<br />
<!-- 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>
<br />
<!-- 用于输出日期的标签 -->
<%
Date nowdt = new Date(300000000);
//将nowdt存入到PageContext里的属性
pageContext.setAttribute("nowdt", nowdt);
%>
<!-- 默认的格式:YYYY-MM-DD HH:mm:ss -->
<s:date name="#attr.nowdt" />
<br />
<!-- format:是一个可选属性 如果指明该属性 则就按照指明的格式输出 -->
<s:date name="#attr.nowdt" format="dd/MM/yyyy" />
<br />
<!-- nice:是一个可选属性,true|false 它用于指定是否输出指定日期和当前日期之间时差-->
<br />
<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的数据标签有所帮助,以上内容属个人上课记录,如要转发请注明出处。愿你有所收获!
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的栈顶。
以下是部分标签的案例供学员参考:
Java代码
/**首先创建一个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" />
<br />
<!--在这里你明白为什么加''吗?如果还是不明白请参考上面-->
<s:set name="username" value="'redarmyChen'" scope="session"></s:set>
<s:property value="#session['username']" />
<br />
<!-- 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>
<br />
<!-- 用于输出日期的标签 -->
<%
Date nowdt = new Date(300000000);
//将nowdt存入到PageContext里的属性
pageContext.setAttribute("nowdt", nowdt);
%>
<!-- 默认的格式:YYYY-MM-DD HH:mm:ss -->
<s:date name="#attr.nowdt" />
<br />
<!-- format:是一个可选属性 如果指明该属性 则就按照指明的格式输出 -->
<s:date name="#attr.nowdt" format="dd/MM/yyyy" />
<br />
<!-- nice:是一个可选属性,true|false 它用于指定是否输出指定日期和当前日期之间时差-->
<br />
<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>
/**首先创建一个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" /> <br /> <!--在这里你明白为什么加''吗?如果还是不明白请参考上面--> <s:set name="username" value="'redarmyChen'" scope="session"></s:set> <s:property value="#session['username']" /> <br /> <!-- 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> <br /> <!-- 用于输出日期的标签 --> <% Date nowdt = new Date(300000000); //将nowdt存入到PageContext里的属性 pageContext.setAttribute("nowdt", nowdt); %> <!-- 默认的格式:YYYY-MM-DD HH:mm:ss --> <s:date name="#attr.nowdt" /> <br /> <!-- format:是一个可选属性 如果指明该属性 则就按照指明的格式输出 --> <s:date name="#attr.nowdt" format="dd/MM/yyyy" /> <br /> <!-- nice:是一个可选属性,true|false 它用于指定是否输出指定日期和当前日期之间时差--> <br /> <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的数据标签有所帮助,以上内容属个人上课记录,如要转发请注明出处。愿你有所收获!
相关文章推荐
- 原创:Struts2控制标签解析
- 原创:Struts2控制标签解析
- struts2和前端通过json交互时数据解析问题
- struts2 + ajax(从后台获取json格式的数据返回到前端,然后前端用jquery对json数据进行解析)
- Struts2 基本数据类型转换的例子 详解析
- struts2中<s:doubleselect/>标签的使用心得<原创>
- The Wide and Deep Learning Model(译文+Tensorlfow源码解析) 原创 2017年11月03日 22:14:47 标签: 深度学习 / 谷歌 / tensorf
- Struts2的通用标签(数据标签和控制标签)
- Struts2数据标签
- Ajax调用Struts2回调JSON数据并解析
- struts2中的s标签解析
- 【原创】开源Math.NET基础数学类库使用(05)C#解析Delimited Formats数据格式
- 分享C/S服务端接口测试 http协议下xml格式数据 上传和解析(原创)
- C#抓取网页数据 解析标题描述图片等信息 去除HTML标签
- angular显示数据时,包含标签的字符串中,标签无法解析
- struts2返回到JSP页面的html字符串如何在JSP页面上解析成html标签
- 【原创】开源Math.NET基础数学类库使用(05)C#解析Delimited Formats数据格式
- [原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等
- Struts2 Action接收POST请求JSON数据及其实现解析