我有一个bean beanName和一个变量paramName,其中包含要使用的属性的名称,以便:

<s:textfield name="%{'beanName.' + paramName}"/>


输出(给出paramName == "year"beanName.getYear() == 1976):

<input type="text" name="beanName.year" value="1976" >


我应该如何使用<s:property>输出相同的属性值?

我想那是:

<s:push value="beanName">
   <s:property value="%{paramName}"/>
</s:push>


会做到这一点,但是它只写paramName值。

最佳答案

在使用paramName从Bean中获取价值之前,您需要先对其进行评估。

为此使用方括号:

<s:property value="beanName[paramName]" />


OGNL首先使用此解析变量获取paramName的值,然后从beanName获取值。

09-27 15:29