<s:property>

来源:互联网 发布:js遍历json对象数组 编辑:程序博客网 时间:2024/04/30 20:37

关于struts2标签取值的备忘录

取值要通过或在任意的标签内使用%{};

当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可;

当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.;

例子:
假设某Action中有person成员变量,在application中存在company属性
那么我们可以通过以下方法取值:

<s:property value="person.name" /> <s:property value="#person.name" /> <s:property value="company.name" /> //无法取到,因为company不在action的valueStack中 <s:property value="#company.name" /> 
<s:textfield name="person.name" value="person.name" /> //错误,value会直接显示person.name字样 <s:textfield name="person.name" value="%{person.name}" /> <s:textfield name="person.company.name" value="%{#company.name}" /> <s:textfield name="person.company.name" value="%{#attr.company.name}" /> 

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

获取的是requet中的对象值


第一种方式:<s:property value="#request.user1.realName"/>


第二种方式:<s:property value="#request.user1['realName']"/>


第三种方式:<s:property value="#user1.realName"/>


第四种方式:<s:property value="#user1['realName']"/>


第五种方式:${requestScope.user1.realName } || ${requestScope.user1['realName'] }

第六种:<s:property value="#attr.user1.realName"/>
attr对象按page==> request sessionapplictio找的

获取session中的值


第一种方式:<s:property value="#session.user1.realName"/>


第二种方式:

<s:property value="#session.user1['realName']"/>

第五种方式:
${sessionScope.user1.realName } || ${sessionScope.user1['realName'] }

获取application中的对象的值


第一种方式:<s:propertyvalue="#application.user1.realName"/>


第二种方式:<s:property value="#application.user1['realName']"/>

第五种方式:
${applicationScope.user1.realName}|| ${applicationScope.user1['realName'] }

原创粉丝点击