文档库 最新最全的文档下载
当前位置:文档库 › Struts2常用标签总结

Struts2常用标签总结

Struts2常用标签总结
Struts2常用标签总结

Struts2常用标签总结

一介绍

1.Struts2的作用

Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。

Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。包括最常用的jsp页面,也可以说V elocity和FreeMarker等模板技术中的使用

2.Struts2分类

(1)UI标签:(User Interface, 用户界面)标签,主要用于生成HTML元素标签,UI标签又可分为表单标签、非表单标签

(2)非UI标签,主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出ValueStack中的值,完成国际化等功能的)

(3)ajax标签

3.Struts2标签使用前的准备:

(1)在要使用标签的jsp页面引入标签库:

<%@ tagliburi="/struts-tags" prefix="s"%>

(2)在web.xml中声明要使用的标签,这样是struts2 2.3.1.2版本的引入方式

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

4.标签的使用

(1)property标签

用于输出指定的值:



以上可以访问某一个包的类的属性的集中方式,study()是访问方法的方法,并输出。

以下用java代码代替的,访问某一个范围内的属性

<%

//采用pageContext对象往page范围内存入值来验证#attr搜索顺序是从page开始的,搜索的顺序为:page,reques,session,application。

set存值的时候存到的是request中,在jsp页面中访问的时候不用加任何的标识符,即可直接访问,如果不同的作用域不一样了,

pageContext.setAttribute("name", "laoowang", PageContext.PAGE_SCOPE);

%>

假设在action中设置了不同作用域的类、不同的作用域的标签的访问:

获取的是requet中的对象值

第一种方式:

第二种方式:

第三种方式:

第四种方式:

第五种方式:${https://www.wendangku.net/doc/4f11200178.html,er1.realName } || ${https://www.wendangku.net/doc/4f11200178.html,er1['realName'] } 第六种方式:

attr对象按page==> request sessionapplictio找的

获取session中的值

第一种方式:

第二种方式:

第五种方式:${https://www.wendangku.net/doc/4f11200178.html,er1.realName } || ${https://www.wendangku.net/doc/4f11200178.html,er1['realName'] }

获取application中的对象的值

第一种方式:

第二种方式:

第五种方式:${https://www.wendangku.net/doc/4f11200178.html,er1.realName } || ${https://www.wendangku.net/doc/4f11200178.html,er1['realNam e'] }

(2)iterator标签的使用

第一种:list集合

第二种:map集合中的使用

Map集合

遍历Map:

:::

第三种:集合的变量

遍历集合


注:users是User的对象,price是User中的一个属性

(3)if else语句的使用

23

21

都不等

(4)URL标签

laowangang

12

测试URL

以上的两个标签的作用是一样的。

(5)data标签

<%pageContext.setAttribute("birth",new Date(200,03,10),PageContext.REQUEST_SCOPE); %>

这个标签是按照format的格式去输出的。

(6)表单

from表单

<%

//从服务器传过来值

pageContext.setAttribute("sex","男",PageContext.REQUEST_SCOPE);pageContext.setAttrib ute("sex1","男",PageContext.REQUEST_SCOPE);

%>

简述一下iterator的介绍:

iterator标签用于对集合进行迭代,这里的集合包含List、Set和数组。

redblue>


value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。

id:可选属性,指定集合里元素的id。

status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:

intgetCount(),返回当前迭代了几个元素。

intgetIndex(),返回当前迭代元素的索引。

booleanisEven(),返回当前被迭代元素的索引是否是偶数

booleanisOdd(),返回当前被迭代元素的索引是否是奇数

booleanisFirst(),返回当前被迭代元素是否是第一个元素。

booleanisLast(),返回当前被迭代元素是否是最后一个元素。

SCME_STRUTS2试卷

--------------------------------------装--------------------------------------订------------------------------线---------------------------------------- **学院课程考试试卷 课程名称:《使用Struts2开发基于MVC设计模式的企业级应用》(A)卷 年级:班级: 姓名:_______________ 学号:_________________ 考试(考查) 闭卷 选择题(每题2分,共计100分) 1.在控制器类中一般需要添加相应属性的( A )和(C )。(选两项) A.setter方法 B.as方法 C.getter方法 D.is方法 2.业务控制器需要在( B )配置文件中进行配置 A.web.xml B.struts.xml C.struts2.xml D.webwork.xml 3.不属于Struts 2表单标签库的是( D )。 A. B. C. D.标签的property属性指定字段的名字,对应ActionForm bean中的一个属性,代码如下: 的对应的userForm bean属性 private String login_Name; public String getLogin_Name() { return login_Name; } public void setLogin_Name(String login_Name) { this.login_Name = login_Name; } 3,:生成HTML标签,使用方法与相同。 启用 停用 4,:生成HTML 5.在JSP页面中可以通过Struts 2提供的___D________标签来输出国际化信息。D A. B. C. D. 6.资源文件的后缀名为____D_______。D

Struts2试题

Struts2试题 1.struts2的执行流程? 客户端提交一个HttpServletRequest请求(action或JSP页面) 请求被提交到一系列Filter过滤器,如ActionCleanUp和FiterDispatcher等 FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器询问ActionMapper是否需要调用某个action来处理 如果ActonMapper据诶的那个需要调用某个A传统,FilterDispatcher则把请求教到ActionProxy,由其进行处理 ActionProxy通过Configuration Manager询问框架配置文件,找到需要调用的Action类ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用action Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器最后ActionInvocation负责根据struts配置文件中配置的result元素,找到与返回值对应的result 2.struts2的web里需要配置什么? 1. 2. 3.struts2 4. 5.org.apache.struts2.dispatcher.FilterDispatcher 6. 7. 8. 9.

10.struts2 11./* 12. 3.struts.xml文件哪个常量可以实现不用重新启动服务就可以得到反馈? 4.struts中的package的作用是什么?namespace可以为空吗?如果namespace为空会意味着什么呢? 标识 可以、 Timmer 如果没写,说明该包为默认空间只要敲index没有精确对应的package都交给namespackage 如果还没有就崩溃 5.Action的实现通集成常用那种方法? 一种是直接实现自己的Action 另一种是实现Action的接口 继承ActionSupport 6.路径设置用什么路径,绝对还是相对? 都可以 7.通配符有几种?要遵循什么原则? {1} 方法名 8.Action的属性?

Struts2中防止表单的重复提交

Struts2中防止表单的重复提交 在学习编程的过程中,我觉得不止要获得课本的知识, 更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java; struts2的token令牌 1、javaweb控制表单重复提交 (1)在jsp页面上使用隐藏域 这样做,每次正常跳转到该页面隐藏域都会产生不同的value的值,此时属于正常操作 如果提交表单的时候,出现隐藏域的值相同,说明表单重复提交(2)在Action类中 先获取session中存放的token的值,String sessionToken = session.getAttibuter ("sessionToken"); 首先会获取页面表单隐藏域(token.html)的值,String token = request.getParameter("token.html"); 同时放置到session中,session.setAttibuter("sessionToken",token); 判断表单是否重复提交 if(sessionToken.equal(token)){//表单重复提交 } else{//表单没有重复提交 } 2、struts实现表单重复提交 (1)在某个页面验证表单重复提交,此时要添加标签,该标签可以产生如下代码: (2)由于token拦截器没有放置到默认栈中,所以当使用token表单重复提交的时候,需要在struts.xml中加载token拦截器

struts2复习模拟题

填空: 1.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。 2.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。 3.Struts 2中的控制器类是一个普通的_POJO_。 4.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为_____<%@ taglib prefix=”s” uri=”strut-tags”%>______。5.在Struts 2表单标签库中,表单标签为__________。 6.ActionSupport类实现了__action_________接口和___validateable________等接口。7.通过控制器类中的____validate()_______方法来输出校验错误信息。 8. 在Hibernate XML影射文件中描述主键生成机制,其属性描述了主键的生成策略,至少写出三种策略名 increment 、 native 、 uuid 。 9. 在Hibernate中级联操作的属性值至少写出三个____none_______ 、_____save-update______、____all_______。 10 Hibernate的会话接口是 ______Session接口_____,它由接口 __SessionFactory接口__创建;Hibernate处理事务的接口是____Transaction接口_______;封装HQL的接口是_____Criteria接口______ 。 11.Struts2框架由_____ Struts ______和______ WebWork _____框架发展而来。 12.Struts2中的控制器类是一个普通的____Class_______。 13.注入资源的注释是____@Resource ___

如何自定义Struts2表单验证后的错误信息显示格式

如何自定义Struts2表单验证后的错误信息显示格式/样式 (s:fielderror,换行,黑点) 前面一段时间学过一些Struts2的知识,感觉Struts2和1.x还是有很大的差别的,我还不好说1.x肯定会过时还是2.0会很快流行,这毕竟是需要作为导向的。 在Struts2中验证真的比较容易,可以在Action中直接写validate,也可以使用validate框架进行验证,这个我觉得比Struts1.x方便了很多,但是有个问题一直困扰了我,直到现在有个小程序要用到这个方面的知识,那就是验证后如何很好地人性化地在jsp 页面中显示了。 大家都知道,Struts2显示验证结果有一些方式,一般通过两种方式,介绍如下: 1.在页面的上面或者某个位置全部显示错误 代码: 这样会显示所有的错误信息,模拟效果如下: 2.在每个字段下面或上面显示,通过 XXX(标签的name属性,象https://www.wendangku.net/doc/4f11200178.html,ername) 例:用 戶 名: https://www.wendangku.net/doc/4f11200178.html,ername 显示效果如下:

上面的差不多是Struts默认显示的两种方式,但是我们常见的显示方式并不是这样的,所有我们需要自定义这种格式,我们的习惯是把错误信息显示在某个出错字段的后面,一行显示,而它给了一个小黑点并且换了行,我们现在就来解决这个问题。 这个问题困扰了我很久,真的很久以前想过,但是没有彻底地解决,一直留到现在,今天在google上搜了很久,终于给解决了,现在分享一下解决的途径。 先提供网上的思路给大家(关键解决的思路) 1.struts2表单验证_错误信息的显示问题中提到 引用 10 楼 starwar2030 的回复: 可以在CSS中定义 .formFieldError { font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; color: #FF3300; vertical-align: bottom; } .formFieldError ul{ margin: 0px; padding: 3px; vertical-align: middle; } 而后使用类似用

相关文档