读书人

Struts2一部分标签总结

发布时间: 2012-10-24 14:15:58 作者: rapoo

Struts2部分标签总结

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]"/>

读书人网 >其他相关

热点推荐