`
folie2006
  • 浏览: 33871 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts学习笔记(标签二)

阅读更多

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标签学习笔记.doc

    Struts标签学习笔记.docStruts标签学习笔记.doc

    struts2 学习笔记 实战

    三、 Namespace ...四、 标签 是用来解决重名的问题,例如当系统的前台和后台都有一个action名叫hello,这时就需要用package来区分。 前台后台 struts2中的package与java的package是相同的作用的。

    Struts2 学习笔记

    二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 八、 Action通配符(wildcard)的配置 9 九、 Action的属性接收参数 10 1、 在...

    struts框架与标签.doc

    struts框架与标签.doc,很好的学习笔记,WORD文档

    struts学习笔记(4)

    15.OGNL表达式 对象图导航语言 Object Graph Navigation Language 是一种比较强大的表达式语言(比EL表达式的功能...1)ognl表达式只能写在Struts2标签的里面(任何一个struts2标签都行) EL表达式可以写在页面的任何位置

    struts2标签学习笔记

    struts2的初学者,内容不多,望各位高手切勿笑话小弟。

    Struts2.1学习笔记

    基于 Struts2.1.8 包括Struts2的基本应用、文件上传、拦截器、输入校验、国际化、OGNL表达式、Struts2标签等内容。

    struts2学习笔记,总结了很多学习的经验

    struts2学习笔记,总结了很多学习的经验,标签的使用,action的使用。struts2.0 和 struts2.1 的区别

    struts2学习笔记

    描述struts2常用的标签,基本的配置.

    Struts1.3 备忘笔记

    Struts 1.3 备忘笔记 【资源特点】 1、以项目形式组织,包含所有的源代码 2、内含详细的注释说明 3、知识点较全面 【内容目录】 01 Struts_01HandworkApply : 手工配置Struct应用程序,演示用户提交数据后服务器的...

    struts学习总结.zip

    欢迎访问我的博客:http://blog.csdn.net/chenpy/&lt;br&gt; &lt;br&gt;struts学习总结说明 本人精心搜集了有关struts学习的资料,有我以前学习时候写的笔记,有学习用的代码还有 其他的好资料,详细列表如下: 1...

    Struts 2.1.8_学习源码

    Struts 2.1.8 学习源码内容 Struts2_01FirstDemo : 跑通第一个Struts2的实例 Struts2_02CURD : 关于Struts2的增、删、改和查 实际业务中数据来自数据库,从DAO层查询,本实例使用静态资源的方式模拟, 主要是关于...

    Java/JavaEE 学习笔记

    Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...

    J2EE学习笔记(J2ee初学者必备手册)

    Struts学习笔记...............263 Struts2.0..263 第一章 MVC Model.........................263 第二章 Struts Basic264 第三章 Action,Result & Struts2 Tag Library......................267 第四章 Data ...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    strut2学习笔记(自己整理适合新手入门)

    整理下常用的struts2的一些基本应用,包括基本的搭建,配置,标签的使用

    FreeMark学习笔记

    使用FTL标签时, 应该有正确的嵌套,而不是交叉使用,这和XML标签的用法完全一样.如果全用不存在的指令,FreeMarker不会使用模板输出,而是产生一个错误消息.FreeMarker会忽略FTL标签中的空白字符.值得注意的是, /&gt; 和...

    java开发常用的中文API集合包

    Freemaker_入门+深入+开发指南+学习笔记.doc FreeMarker标签中文文档.pdf FreeMarker教程.pdf ibatis开发指南(中文版).pdf java web标签大全.CHM jBPM_4.4_开发指南.pdf jquery1.7 中文手册.chm lucene3.0-api.CHM...

    spring学习笔记

    目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................

    人脸识别研究综述

    二、javaEE框架学习笔记 2、&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;的涵义: @taglib表明引用标签。类似java中的import语句prefix="s" 引用的名称在页面可以使用,就像java中生成的一个对象名,以后调用的时候...

Global site tag (gtag.js) - Google Analytics