gpt4 book ai didi

java - 从 jsp 调用操作方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:19 25 4
gpt4 key购买 nike

简单地..我需要知道这些列表属性是否执行相同的工作。

<s:select name="city" label="City" list="cities" listKey="id" listValue="name" />

<s:select name="city" label="City" list="%{getCities()}" listKey="id" listValue="name" />

我们可以像上面那样调用操作方法吗?如果"is",正确的方法是什么?

谢谢

最佳答案

list="cities"list="%{getCities()}"两者完全相同。两者都调用 List<City> cities 的 getter在 action 类中从 valuestack 读取值.

如果 getter 被删除,两者都会抛出错误。

1. <s:select name="city" label="City" list="cities[0]" listKey="id" listValue="name" />

评估为

a. <s:select name="city" label="City" list="%{cities[0]}" listKey="id" listValue="name" />

b. <s:select name="city" label="City" list="%{getCities().get(0)}" listKey="id" listValue="name" />

1、a 和 b 相同,因为 % 力 OGNL评估。它将查询堆栈以获取特定属性。

OGNL 支持集合,这就是我们可以使用这三个集合的原因。

当我们有特殊需要时,我们会调用操作。

例如

 <s:url id="databaseList" action="fetch-citynames" />
<sd:autocompleter key="search"
href="%{databaseList}" name="searchText" />

这里fetch-citynames返回json列表。

另请参阅this link

实际上我读的是here

ognl

主要原因是因为%{}语法用于强制进行 OGNL 计算,否则 Struts 会将值视为字符串文字。

例如,

  <s:property value="name" />

将在值堆栈中查找名称属性,即通过调用 getName() 检索的值。

如果您想强制它使用文字值“name”,则需要使用 %{}语法 -

 <s:property value="%{'name'}" />

但是对于 <s:select list="" /> 来说它使用 OGNL Collection Construction

方法如下OGNL调用方法..参见 here

关于java - 从 jsp 调用操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23934355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com