struts.xml的action配置格式、前台取值的四种方式

来源:互联网 发布:win10如何禁止安装软件 编辑:程序博客网 时间:2024/06/05 18:13

struts.xml的action配置格式
class的写法如下两种都可以

    <package name="hurricane" extends="struts-default">        <action name="loginAction" class="com.demo.LoginAction" method="execute">         <result>             /result.jsp        </result>          </action>    </package>
    <package name="com.demo" extends="struts-default">        <action name="loginAction" class="LoginAction" method="execute">         <result>             /result.jsp        </result>          </action>    </package>

name是小写,前台from表单的action对应。class大写。

Struts2页面取值的四种方式:(当取值得不到的时候,逐个试一下)

<s:property value="username"/>${username}  <s:property value="#request.username"/>(#session. #application.类似)<s:property value="%{username}"/> 

Struts2中的property标签<s:property value="...."/>很重要,使用struts的利器。如果用struts不用s标签是舍近求远。property标签是用于取得OgnlContext上下文中的属性值,也称为数据标签。可取得request/session/application/attr/parameters以及valueStack这六个范围时,取前五个范围的值需要明确指定范围如:
<s:property value="#request.属性名" />取ValueStack中的值时,是不需要带#的,可以直接取,因为Action中值存储在ValueStack中的,所以取Action中的属性是不需要带#号的,可以直接取.

注意,在action中设置了该属性的setter/getter方法时,该属性才会取到,否则它不会被拦截器处理,value参数的类型是object,可以理解为这个默认是会解析成ognl表达式的。如果需要输入一个字符串<s:property value="'ddd'">注意,在value里面的ddd字符串外面加了单引号,这样不会将ddd解析成ognl表达式了。[本段来自百度知道]

你还应该知道(错,应该熟悉)的<s:property>标签的一些属性。

default属性
用于设置默认的值,<s:property value="user" default="beijing"/> 表示的是,如果值栈中能取到user,那么就显示取到的值.如果取不到,那么就用”beijing”.[本段来自百度知道]

必须知道的,很重要

1.按需输出特定长度的字符
例:<s:property val="name.s string(0,4)" />,只输出name的前四个字符,其中name是我需要输出的字符串。
2.格式化输出日期
例:<s:property val="%{getText('format.date',{createdDt})}"/>,这里说明一下,’format.date’是输出的日期的格式,这个配置在国际化资源文件中:format.date ={0,date,yyyy-MM-dd },其中的格式可以自己配置,createdDt是我要输出的日期。
这种格式化输出日期的方法也适用于别的标签,例如:<s:textfiled/>,也是一种比较通用的方法,另外再提供几种格式:format.time = {0,time}
format.number = {0,number,\#0.0\#\#}
format.percent = {0,number,\#\#0.00'%'}

你可以仅仅只知道的<s:property>标签的一些属性。
escape属性

默认是true。表示需要将html语句强制转换成字符串显示
<s:property value="'<hr>'" escape="false"/>表示不需要将<hr>转换成字符串..也就是说,页面上它将会显示一条横线.对应的,如果escapse为true,那么页面上将会显示字符串"<hr>".

struts2中的标签就那么多,这些如果做项目,可以都熟悉一下,不过真正常用且重要的就那么几个。要经常熟悉。

你还应该知道(错,应该熟悉)的<s:iterator>标签的一些属性。
迭代<s:iterator>用于将List、Map、ArrayList等集合进行循环遍历
<s:iterator value="userList" id="user" status="u">
<s:property value="userName"/></a>
</s:iterator>

该标签用于将userList集合中的元素进行循环,用过property进行显示集合中的指定元素值。

0 0
原创粉丝点击