Struts标记分为(5组)
JSP里学习过标准标签库与自定义标签,它的原理是一个JAVA类代码实现的,通过页面的
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
来导入相应的配置文件,使用别名prefix即可调用标签库设定的标记
Html struts-html.tld
Bean struts-bean.tld
Logic struts-logic.tld
Tiles struts-tiles.tld
Nested struts-nested.tld
红字为Struts中重要掌握的标签内容。一般JSP页面都导入红字相应的标签
上一笔记中只介绍了HTML表单的标签与BEAN中Write的一些简单的使用.接下来详细介绍bean及logic里面的标签元素
BEAN
<bean:define/> 定义变量
id=变量名
value=变量值
toScope=存储范围
name=存储作用域中的键名
property=属性
type=变量类型
<bean:define id="username" value="张三" toScope="request"/>
username:<bean:write name="username" scope="request"/>
<bean:write/> 输出变量值
<bean:write>
name=变量名
filter=是否过滤html
format=输出格式
property 属性名字
__________________________________________________________________________________
例如要输出对象时,必须先给定name为对象的别名,property属性的名称。
如:User对象中有Name属性
Request.setAttribute(“user”,UserObj);
<bean :write name = “user” property=“name”/>
request.setAttribute("date",new java.util.Date() ); --定义一个时间对象
<bean:write name="date"/><br /> --默认输出为Mon Jul 09 21:44:06 CST 2007
<bean:write name="date" format="yyyy-MM-dd"/><br /> 2007-07-09
<bean:write name="date" format="yyyy年MM月dd日"/><br /> 2007年07月09日
__________________________________________________________________________________
<bean:size/> 计算集合长度
<bean:size>
id=变量名
name=存储作用域中的键名,该键名对应一个集合
---------------------------------------------------------------------------------
<%
java.util.ArrayList list=new java.util.ArrayList();
list.add("111111");
list.add("222222");
list.add("33333333");
request.setAttribute("list",list);
%>
<bean:size id="len" name="list"/><br/>
集合长度:<bean:write name="len"/><br />
-----------------------------------------------------------------------------------
<bean:message/> 读取消息文件中的消息
<bean:message>
bundle=资源文件别名,该别名在struts-config.xml中声明
key=要读取的消息的键名
name=存储作用域中的键名,以该键名对应的键值作为key
property=存储作用域中bean的属性值
arg0=消息参数
------------------------------------------------------------------------------------
<bean:message bundle="mytest" key="username"/>
1. 在struts-config.xml配置
<message-resources key="mytest" parameter="test" />
这句在action-mapping后面,struts默认也配置有一个相应的文件。Parameter填写的值是一个.properties的文件名
2. test.properties文件中配置如下
username=\u7528\u6237\u540d # username=用户名 --#为注释
因为默认填写中文时读取消息会乱码,所以得先把中文转换成\u7528。。等类型
3. 转换工具在jdk\bin目录下的native2ascii.exe 命令
Copy con a.txt
[要转换的中文填写]
^Z 结束用Ctrl+Z,最后将刚才输入的保存在了a.txt文件中
然后使用 native2ascii a.txt b.txt
此时这个命令会把a.txt中的所有内容转换后输出b.txt
4. 还有一种情况就是配置带参数的消息
msg=\u4f60\u597d,{0}
<bean:message bundle="mytest" key="msg" arg0="张三"/>
------------------------------------------------------------------------------------
<bean:resource/> 将文件内容保存到变量
<bean:resource>
id=变量名
name=jsp页面名
<bean:include/> 将文件内容保存到变量
<bean:include>
id=变量名
forward=struts-config.xml中的forward别名
-----------------------------------------------------------------------------------
<bean:include id="x" forward="reg"/>
<bean:write name="x" filter="false"/><hr />
<bean:resource id="x2" name="reg.jsp"/>
<bean:write name="x2" filter="false"/>
------------------------------------------------------------------------------
<logic:forward name="reg"/> 转发 reg 为struts-config.xml中
<logic:redirect forward="reg"/> 重定向
<global-forwards>
<forward name="reg" path="/reg.jsp" />
</global-forwards>
------------------------------------------------------------------------------
<logic:redirect/> 重定向
<logic:forward/>
<bean:header/>
<bean:cookie/>
<bean:page/> 取内置对象
-------------------------------------------------------------------------------------
<logic:equal/>判断值是否相等与设定的值
-------------------------------------------------------------------------------------
如:判断从username对象中value=” 张三” 成立的话就执行其标签中的代码
<logic:equal value="张三" name="username">
username的值为:张三<br/>
</logic:equal>
<logic:notEqual/>判断值是否不相等与设定的值
<logic:notEqual value="张三" name="username">
username的值不为:张三<br/>
</logic:notEqual>
<logic:greaterThan/>判断值是否大与给定的值
<logic:greaterThan value="30" name="age">
age大于30.<br />
</logic:greaterThan>
<logic:lessThan/>判断值是否小与设定的值
<logic:lessThan value="30" name="age">
age小于30.<br />
</logic:lessThan>
<logic:match/>判断给定的值是否包含设定的值
<logic:match value="三" name="username">
username中包含:三<br />
</logic:match>
<logic:notMatch/>判断给定的值是否不包含设定的值
<logic:notMatch value="三" name="username">
username中包含:三<br />
</logic:notMatch>
-----------------在match中有个属性 location="end"为end时判断结尾是否包含------------
-----------------在match中有个属性 location="start"为start时判断开头是否包含------------
-------------------------------------------------------------------------------------
<logic:empty/>判断值是否为空,前提要存在这个值
-------------------------------------------------------------------------------------
<logic:empty name="username" scope="request">
其值为空.<br />
</logic:empty>
-------------------------------------------------------------------------------------
<logic:notEmpty/>判断值是否不为空,前提该值要存在
-------------------------------------------------------------------------------------
<logic:notEmpty name="username" scope="request">
其值非空.<br />
</logic:notEmpty>
<logic:present/> 判断值或对象是否存在?
-------------------------------------------------------------------------------------
<logic:present name="username" scope="request">
request中包含username,
<logic:empty name="username" scope="request">
其值为空.<br />
</logic:empty>
<logic:notEmpty name="username" scope="request">
其值非空.<br />
</logic:notEmpty>
</logic:present>
<logic:notPresent/>判断值或对象是否不存在
-------------------------------------------------------------------------------------
<logic:notPresent name="age" scope="request">
request中不存在age.<br/>
</logic:notPresent>
<logic:messagesPresent/>判断消息是否存在
-------------------------------------------------------------------------------------
如:登陆的时候用户名或密码错误则显示错误信息的例子
1. 在ApplicationResources.properties文件中配置好相应的错误信息后
2. 在提交表单处理的Action中处理后加载错误消息的处理
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMessage;
//生成错误消息,先要导入相关的两个包
ActionErrors errors=new ActionErrors();
ActionMessage msg=new ActionMessage("error.exist.username");
//构造里填写的就是配置文件中的key的名字
errors.add("username",msg);
//将消息集合存储到request
this.saveErrors(request,errors);
最后把错误消息存入在request中
在页面上直接如下判断即可,如果错误消息存在则执行<html:errors/>把错误消息全输出
<logic:messagesPresent>
<html:errors/>
</logic:messagesPresent>
<logic:messagesNotPresent/>判断消息是否不存在
-------------------------------------------------------------------------------------
如果没有则执行标签之间的内容
<logic:iterate/>迭带器一般与<bean:write>一起使用输出
-------------------------------------------------------------------------------------
<h1>iterate标记测试</h1>
<%
java.util.ArrayList list=new java.util.ArrayList();
list.add("111111");
list.add("222222");
list.add("33333333");
list.add("44444444");
list.add("55555555");
list.add("666666666666");
request.setAttribute("list",list);
%>
<logic:iterate scope="request" name="list" id="item" indexId="i">
<bean:write name="i"/>: <!—name为填写的别名(key),id是临时的对象名称 -->
<bean:write name="item"/><br /><!—name为迭带器每行存的临时对象名称 -->
</logic:iterate>
<hr />
<logic:iterate scope="request" name="list"
id="item" indexId="i" offset="2" length="3">
<!—offset为迭带器要输出的起始位置 length为要输出的长度 indexId为下标-->
<bean:write name="i"/>:
<bean:write name="item"/><br />
</logic:iterate>
-------------------------------------------------------------------------------------
分享到:
相关推荐
### Struts学习笔记详解 #### 一、Struts框架概览与编码设置 在学习Struts框架时,首要关注的是其编码配置。如代码片段所示,`struts.i18n.encoding`常量被设置为`UTF-8`,这确保了国际化(I18N)资源文件的正确...
Struts2提供了一系列自定义的JSP标签,如`s:textfield`、`s:textarea`、`s:submit`等,这些标签简化了视图层的开发,增强了可读性和可维护性。它们与OGNL结合,能够方便地访问ValueStack中的数据。 **六、项目实践*...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...
本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
在Struts中,一系列的标签库帮助开发者创建更加结构化的、易于维护的代码,减少了直接在JSP页面中编写Java脚本的需求。 首先,`<html:html>`标签用于在网页的开头生成`<html>`元素,并可以通过`lang`属性来设置页面...
Struts是Apache软件基金会下的一个开源框架,主要应用于Java Web应用程序的开发,它提供了一种组织应用程序代码的方式,使得开发者可以更有效地构建基于MVC(Model-View-Controller)架构的Web应用。JfreeChart则是...
### Struts 学习笔记(4):深入理解 OGNL 表达式与 Struts2 标签 #### 一、OGNL 表达式简介 **OGNL**(Object Graph Navigation Language)是一种功能强大的表达式语言,在 Struts2 框架中扮演着非常重要的角色。...
本篇“Struts学习笔记(四)”着重于深入理解Struts的工作原理和实际应用,通过阅读提供的Struts.pdf文档,我们可以获取以下几个关键知识点: 1. **MVC模式**:在Struts框架中,MVC模式被用于分离业务逻辑、数据模型...
Struts2是一个强大的MVC框架,它提供了丰富的标签库,使得开发者可以更加便捷地构建视图层。在本文中,我们将深入探讨Struts2的标签库,并特别关注单选框和多选框的使用。 首先,引入Struts2的标签库至关重要。在...
这个版本的学习笔记主要集中在 Struts 框架的基础知识、架构和核心组件上,帮助开发者更好地理解和应用这个经典版本。在这个笔记中,我们将深入探讨 Struts 的工作原理、配置以及它如何简化 MVC(模型-视图-控制器)...
在Struts2中,学习笔记通常会涵盖以下几个关键概念: 1. **源代码查看和Javadoc**:开发者可以通过查看源代码来理解Struts2的工作原理,而Javadoc则提供了API文档,帮助理解类和方法的功能。 2. **包(Package)和...
在Struts2的学习笔记中,`note.jsp`可能同样用于显示和编辑笔记,但使用的是Struts2的标签库,如`<s:property>`来显示模型对象的属性,以及`s:form`标签创建表单。Struts2允许直接在JSP页面中使用Action的属性,无需...
Struts框架提供了一系列的标签库,如Struts Tiles和Struts JSTL,帮助开发者创建动态且可复用的页面组件。 4. **Controller(控制器)** 控制器是Struts框架的核心部分,它接收HTTP请求,根据配置文件解析请求,...
二、标签 标签在Struts2配置文件中起到了划分和组织Action的作用,类似于Java中的包(package)。它允许我们将具有相同功能或关联的Action归类在一起,解决Action命名冲突的问题。例如,我们可以为前端和后端分别...
- 方式二:在`struts.xml`中添加`<constant>`标签,如`<constant name="struts.devMode" value="false" />`。 - 方式三:在`web.xml`中配置`Filter`的初始化参数,如`<init-param><param-name>struts.devMode...
本篇学习笔记将深入探讨Struts2.0的核心概念和配置,帮助你理解和掌握这个框架。 **一、Struts2的作用** Struts2的主要目标是提供一种结构化的开发方式,它整合了请求处理、视图展示和业务逻辑的交互。通过使用...