簡體   English   中英

從jsp調用動作方法

[英]calling an action method from a 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" />

我們可以調用上面的動作方法嗎?如果是,正確的方法是什么?

謝謝,

list="cities"list="%{getCities()}"完全相同。 兩者都在操作類中調用List<City> cities getter來從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列表。

另請參閱此鏈接

其實我是從這里讀的

OGNL

主要原因是因為使用%{}語法強制進行OGNL評估,否則Struts會將其視為字符串文字。

例如,

  <s:property value="name" />

將在值堆棧中查找名稱屬性,即通過調用getName()檢索的值。

如果您想強制其使用文字值“ name”,則需要使用%{}語法-

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

但是對於<s:select list="" />它使用OGNL集合構造

下面是OGNL調用的方法。請參見這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM