![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
struts2 ognl 前台取值的小问题,高手进来看看
后台做了一个测试对象publicclassTest{privateDepartdepart;getset略}publicclassDepart{privateString...
后台做了一个测试对象
public class Test {
private Depart depart;
getset略
}
public class Depart {
private String sysid;
private String departname;
private String remark;
getset略
test对象封装好之后,通过如下方法放入堆栈
ActionContext.getContext().getValueStack().set("test", test);
问题是,前台如何取到test对象下depart对象的属性值
如果是test的直接属性,我会取,直接<s:property value="%{test.属性名}" />
现在是 test 下对象的属性,该怎么取?试了value="%{test.depart.属性名}"
以及value="%{#test.depart.属性名}"都没有效果
求助!!!
去掉是无效的,去掉直接显示""内部的文字 test.属性名 test.depart.属性名
%{}就是为了避免被当做字符串解析而使用的 展开
public class Test {
private Depart depart;
getset略
}
public class Depart {
private String sysid;
private String departname;
private String remark;
getset略
test对象封装好之后,通过如下方法放入堆栈
ActionContext.getContext().getValueStack().set("test", test);
问题是,前台如何取到test对象下depart对象的属性值
如果是test的直接属性,我会取,直接<s:property value="%{test.属性名}" />
现在是 test 下对象的属性,该怎么取?试了value="%{test.depart.属性名}"
以及value="%{#test.depart.属性名}"都没有效果
求助!!!
去掉是无效的,去掉直接显示""内部的文字 test.属性名 test.depart.属性名
%{}就是为了避免被当做字符串解析而使用的 展开
3个回答
展开全部
你把属性放到了valueStack中,你可以试试用EL表达式来求值
或者你试试这个test.depart.属性名 在值栈中的对象应该可以直接取到的
你干嘛一定放到值栈中放到上下文中也是可以的ActionContext.getContext().put("test",test);这样之后直接用#test.depart.属性名或者${requestScope.test.depart.属性名},应该也是可以的
能不能成功 成功告诉我一声
或者你试试这个test.depart.属性名 在值栈中的对象应该可以直接取到的
你干嘛一定放到值栈中放到上下文中也是可以的ActionContext.getContext().put("test",test);这样之后直接用#test.depart.属性名或者${requestScope.test.depart.属性名},应该也是可以的
能不能成功 成功告诉我一声
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询