struts2 的标签中 property是什么意思?怎么用?

作者&投稿:熊盆 (若有异议请与网页底部的电邮联系)
struts2 的标签中 property是什么意思?怎么用~

给你一个例子:
<%@page contentType=text/html;charset=gbk %
<%@taglib uri=/struts-tags prefix=s%<html<head<titlewelcome</title</head<body<h3 align=center<s:property value=message /</h3</body</html上述代码中,<s:property value=“message” /是使用struts的标签来
读取当前ActionContext所关联的ValueStack中的对象的信息,其中
message为一个OGNL表达式。

给你一个例子:<%@page contentType=text/html;charset=gbk %<%@taglib uri=/struts-tags prefix=s%<html<head<titlewelcome</title</head<body<h3 align=center<s:property value=message /</h3</body</html上述代码中,<s:property value=“message” /是使用struts的标签来读取当前ActionContext所关联的ValueStack中的对象的信息,其中message为一个OGNL表达式。

Struts2中的property标签<s:property value="...."/>
是用于取得OgnlContext上下文中的属性值,也称为数据标签
特点是取request/session/application/attr/parameters这五个范围时,需要明确指定范围如:
<s:property value="#request.属性名" />,记住,范围前面带#号,如果取ValueStack中的值时,是不需要带#的,可以直接取,因为Action中存储在ValueStack中的,所以取Action中的属性是不需要带#号的,可以直接取.
注意,在action中设置了该属性的setter/getter方法时,该属性才会取到,否则它不会被拦截器处理,value参数的类型是object,可以理解为这个默认是会解析成ognl表达式的。如果需要输入一个字符串<s:property value="'ddd'">注意,在value里面的ddd字符串外面加了单引号,这样不会将ddd解析成ognl表达式了。
属性说明:
default属性
用于设置默认的值,<s:property value="user" default="beijing"/> 表示的是,如果值栈中能取到user,那么就显示取到的值.如果取不到,那么就用"beijing".
escape属性
默认是true。表示需要将html语句强制转换成字符串显示
<s:property value="'<hr>'" escape="false"/>表示不需要将<hr>转换成字符串..也就是说,页面上它将会显示一条横线.对应的,如果escapse为true,那么页面上将会显示字符串"<hr>".

还有几个比较特殊的用法,分享一下:
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'%'}
还有很多其他特性,不再一一讲解了,楼主可以去详细学习下。

property标签<s:property value="...."/>用于得到OgnlContext上下文中的属性值,称为数据标签。
双引号内取request/session/application/attr/parameters这五个范围时,需要明确指定范围:

<s:property value="#request.属性名" />,范围前面带#号;

取ValueStack的值时,是不需要带#的,可以直接取,因为Action是存储在ValueStack中的,所以取Action中的属性不需要带#号,可以直接取。


在action中设置了该属性的setter/getter方法时,该属性才能取到,否则不会被拦截器处理,value参数的类型是object,可以理解为这个默认是会解析成ognl表达式。

如果需要输入一个字符串<s:property value="'ddd'">在value里面的ddd字符串外面加了单引号,这样就不会将ddd解析成ognl表达式了。


属性说明:
1.default属性
用于设置默认的值,<s:property value="user" default="beijing"/> 表示的是,如果值栈中能取到user,那么就显示取到的值.如果取不到,那么就用"beijing"。
2.escape属性
默认为true。表示需要将html语句强制转换成字符串显示
<s:property value="'<hr>'" escape="false"/>表示不需要将<hr>转换成字符串,页面上将会显示一条横线。如果escapse为true,页面上将会显示字符串"<hr>".





在struts2中不在有Form 数据类了 所以 实体的属性和 和Action 处理类在一个类中。
property是属性的意思啊!他对应的就是你 的Action 中的属性
比如这是一个图书的操作类 Action
public class OperBookAction extends ActionSupport {
private String bookName;

<s:property value="bookName"/> 显示页面

所有属性都必须设置了setter才会被struts2的参数拦截器处理,否则它无法写入。如果你把struts2的调试模式打开,可以看到警告信息的。说你的某个name没对应的setter

<s:property value="dog.name"/>


珙县19170853592: struts2 的标签中 property是什么意思?怎么用? -
谈赖盐酸: property标签<s:property value="...."/>用于得到OgnlContext上下文中的属性值,称为数据标签.双引号内取request/session/application/attr/parameters这五个范围时,需要明确指定范围:<s:property value="#request.属性名" />,范围前面带#...

珙县19170853592: Struts2标签s:property -
谈赖盐酸: 1,如果对象当中的属性是private修饰的,外部你无论如何访问不到的,所以只能靠public修饰的get,set方法来操作私有属性.2,一个简答的引号嵌套的使用,你注意value=""是固定的写法,如果你的value是整数 这样写肯定没错,value="1",但是如果是字符串,当然要加引号,比如value=" 'abc' " 这个'abc'代表的就是adc这个字符串.

珙县19170853592: struts2 标签库中的%和#是什么意思
谈赖盐酸: 要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可:<%@ taglib prefix="s" uri="/struts-tags"%>符号:#用来取根目录下的值,例如 session,request等等,取值的时候#session.key.属性名 ,这样会取到想要的对象的属性值.符号:%用于OGNL标签嵌套时候用的,比如想把一个对象的值赋值给另外一个对象:<input type="hidden" name="UserAId" value="<s:preperty value=“%UserB.id” ">

珙县19170853592: struts2 中property标签的使用 -
谈赖盐酸: 所有属性都必须设置了setter才会被struts2的参数拦截器处理,否则它无法写入.如果你把struts2的调试模式打开,可以看到警告信息的.说你的某个name没对应的setter

珙县19170853592: struts2 标签 <s:property value="'abc'.contains('a')" /> 无效求解决,这是怎么回事? -
谈赖盐酸: property标签用于输出值栈中的对象的属性值,使用value属性来指定要输出的对象属性,如果没有指定value属性,那么默认输出栈顶对象.属性如下:default: 可选,如果需要输出的属性值为null,则显示的default属性指定的值 escape: 可选,指定是否escapeHTML代码 value: 可选,指定需要输出的属性值.如果没指定,默认输出ValueStack栈顶的值 id: 可选,指定该元素的标 你这样写的意图是什么,难道是想德TRUE还是FLASE?

珙县19170853592: struts2标签问题 ${pageScope.name} <s:property name="name"/> -
谈赖盐酸: value="${username}"这个是el表达式.如果你用HTML标签,不用<s:textfield标签的话这个是好用的.改成这样就可以了.<s:textfield name="text" label="username" value="%{#username}"></s:textfield> 试试吧.

珙县19170853592: 如何使用struts2的标签显示对象中的对象的属性值 -
谈赖盐酸: (1)property标签 用于输出指定的值: <s:property value="%{@cn.csdn.hr.domain.User@Name}"/><br/> <s:property value="@cn.csdn.hr.domain.User@Name"/><Br/><!-- 以上两种方法都可以 --> <s:property value="%{@cn.csdn.hr.domain.User@study()}"/> 以上可以访问某一个包的类的属性的集中方式,study()是访问方法的方法,并输出.

珙县19170853592: struts2中标签 -
谈赖盐酸: name是name,在<s:textfield name=""/>中表示的是<input name=""/>的name属性,在其他标签则不一定;id貌似在2.1.6版本中被var取代了,即<s:url action="aAction" var="vv"/>,意思把这个变量存入值栈中,方便用<s:property value...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网