java从jsp调用动作方法
简单地说。。我需要知道这些列表属性是否做相同的工作
<s:select name="city" label="City" list="cities" listKey="id" listValue="name" />
及
<s:select name="city" label="City" list="%{getCities()}" listKey="id" listValue="name" />
我们是否可以调用上述操作方法,如果“是”,那么正确的方法是什么
谢谢
# 1 楼答案
list="cities"
和list="%{getCities()}"
两者完全相同。这两个函数都在action类中调用List<City> cities
的getter来读取valuestack
中的值如果删除getter,两者都会抛出错误
被评估为
1、a&;b是相同的,因为%forces
OGNL
评估。这将查询堆栈中的特定属性OGNL支持集合,这就是为什么我们可以使用这三个
当我们使用特殊需求时,我们称之为行动
例如
这里
fetch-citynames
返回json
列表另见this link
实际上我读了here
主要原因是
%{}
语法用于强制OGNL求值,否则Struts会将该值视为字符串文本例如,
将在值堆栈中查找name属性,即通过调用getName()检索的值
如果要强制它使用文本值“name”,则需要使用
%{}
语法-但是在
<s:select list="" />
的情况下,它使用OGNL Collection Construction下面是
OGNL
如何调用方法。。见here