如何在Struts 2中使用s:set作为s:push的参数进行静态方法调用



我试过了:

<s:set name="ordersymbol" value="EURUSD" var="ordersymbol"/>
    <s:push value="@dao.positions@positionsO(%{#ordersymbol})">
<s:set name="ordersymbol" value="EURUSD" var="ordersymbol"/>
    <s:push value="@dao.positions@positionsO(#ordersymbol)">
<s:set name="ordersymbol" value="EURUSD" var="ordersymbol"/>
    <s:push value="@dao.positions@positionsO(ordersymbol)">
<s:set name="ordersymbol" value="EURUSD" var="ordersymbol"/>
    <s:push value="@dao.positions@positionsO(%{ordersymbol})">

以上四种方法都不起作用,方法总是得到空参数。

尽管如果我尝试

<s:push value="@dao.positions@positionsO('EURUSD')">

我知道这是一个老问题…但是:

in不起作用的原因是"value是一个对象"。正确的是:

<s:set var="ordersymbol" value="'EURUSD'" />

和正确的是第二个

你试过了吗

<s:set name="ordersymbol" value="EURUSD" var="ordersymbol"/>
    <s:push value="@dao.positions@positionsO('%{#ordersymbol}')">

?

我顺便想到了一个替代方法。

<s:set value="@dao.positions@positionsO('EURUSD')" var="symbol1"/>
    <s:push value="#symbol1">

如果使用迭代器

<s:iterator value="#{'EURUSD':'EURUSD','GBPUSD':'GBPUSD'}>
<s:set value="@dao.positions@positionsO(value)" var="symbol1"/>
    <s:push value="#symbol1">...</s:push>
</s:iterator>

但是我仍然需要找到一种方法,如果我在迭代器中使用列表,而不是像上面那样使用映射。

Try

<s:push value="%{@dao.positions@positionsO(#ordersymbol)}">

是类似的东西,但是对一个表达式整体求值。

相关内容

最新更新