1: #status.odd == true 判断遍历的奇数行
2: 如果一个list里面只有一个属性的话,页面显示直接用<s:property />,不管是只存整形或者字符串
国际化:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
3: Struts2引入文件 <include file="struts-default.xml"/>
4: Action要继承extends ActionSupport
诸如属性只需要 setter和getter方法就可以直接用属性了
5:映射Action类
<package name="tutorial" extends="struts-default">
<action name="HelloWorld" class="tutorial.HelloWorld">
<result>HelloWorld.jsp</result>
</action>
</package>
Struts 2.0有两个配置文件,struts.xml和struts.properties都是放在WEB-INF/classes/下。
1、struts.xml用于应用程序相关的配置
2、struts.properties用于Struts 2.0的运行时(Runtime)的配置
Struts 2默认会读取classpath下的struts-default.xml,struts-plugin.xml,struts.xml这三个文件。
6:使用Struts2标记,需要引入文件
<%@taglibprefix="s"uri="/struts-tags"%>
7:常用UI标记:
<s:set name="name" value= "#request.token"/>
<s:iterator value="#request.names" status="stuts">
<s:property value ="#request.xxx">注意如果List里面只包含一个属性迭代显示<s:property/>
8:常用逻辑标志
<s:if test="#request.xxx==xxx"> // </s:if> <s:elseif></elseif> <s:else></s:else>
9:include
<s:include value="/condition.jsp">
<s:param name="name">Max</s:param> // 可以引入一个JSP或者Servlet
</s:include>
10:param
<param name="color">blue</param><!--字符串方式参数值以String的格式放入statck.-->
<param name="color" value="blue"/><!--对象方式该值会以Object的格式放入statck -->
11:URL
<a href='<s:url value="/i18n.jsp" />'>18n</a>
<s:url id="url" value="/condition.jsp"> <s:param name="name" value = "Max"/></s:url>定义url
<s:a href="%{url}">if\elseif\else</s:a>
更多的UI请见:http://wiki.javascud.org/display/ww2cndoc/TagsWebWork2文档中文化计划(中文)
11:<result type="velocity">/HelloWorld.vm</result>
激动人心的地方在于它可以把Action输出到velocity,JasperReports和Freemarker等模板,而不仅可以做转发和重定向
12:Action 取消了Form取而代之的是属性的setter和getter方法
还有更高级的是它可以在Action里面定义POJO,页面直接PO.getName().PO.getPassword()之类的操作
13:作用域对象的获取
非Ioc方式获取:ServletActionContext.getRequest()-->request 类似。。。。
Ioc方式获取:定义HttpServletRequest属性setter和getter方法。
14:一个属性如果有setter和getter方法的话可以<s:property value="message" escape="false"/>
15:多个对象,同样的POJO提交问题
比如存储产品对象,首先要继承ActionSupport public List<Product> products;
输入: %{} 表示使用ONGL表达式 ,比如像同时提交三个产品的话
<s:iteratorvalue="new int[3]" status="stat">
<s:textfieldname="%{'products['+#stat.index+'].name'}"/> <s:textfieldname="%{'products['+#stat.index+'].price'}"/> <s:textfieldname="%{'products['+#stat.index+'].dateOfProduction'}"/>
</s:iterator>
16:转换错误处理
17:<!--此标志的作用是引入Struts 2.0的常用的Javascript和CSS--> <s:head/>
18:拦截器:
struts2-all-2.0.1.jar或struts2-core-2.0.1.jar包的struts-default.xml定义啦很多的拦截器
包里面会有冲突
使用默认的拦截器首先<include file="struts-default.xml" />
定义Action的时候<interceptor-ref name="xx" />
19
<s:iteratorvalue="books.{?#this.price > 35}">
<s:propertyvalue="title" /> - $<s:propertyvalue="price" />
</s:iterator>
<s:propertyvalue="books.{?#this.title=='Code Complete, Second Edition'}.{price}[0]"/>
分享到:
相关推荐
a) Struts2是以web work优秀的设计思想为核心,吸收了struts1的部分优点,建立了一个基于webwork和struts1的MVC框架。 二、 优点: a) 结构清晰,使开发者只关注业务逻辑实现即可。 b) 提供了丰富的标签,大大提高了...
本书内容非常全面,涵盖了众多书籍所有知识要点,并结合作者自己经验总结而编写,内容相当丰富,是查找技术的好帮手及学习Struts2的不二选择 众所周知,一般书籍为了销售需要,往往很少的知识点,却需要添加大量的...
12 <br/>1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点 9、 Struts项目实施经验 10、 总结 ...
文献综述 摘 要 Web开发技术和Web开发框架整合实践研究是这个时代的一个热点,本文在参阅国内 外Web开发技术和Web开发框架及主要几个框架相关文献的基础上,对Web开发框架研究作 了较为全面的总结和梳理,并结合Web...
其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:(x>y)> ...
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性...
Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的 Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式...
Struts+Spring+Hibernate实现上传下载 本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本: •Struts 1.2 •Spring 1.2.5 •Hibernate 3.0 本文...
9.2.4总结 77 9.3认证 78 9.3.1什么是Spring Security中的认证? 78 9.3.2直接设置SecurityContextHolder内容 80 9.4 Web应用程序中的身份验证 81 9.4.1 ExceptionTranslationFilter 82 9.4.2 ...
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...