我尝试使用<s:property>
从JSP调用一个Struts2Action方法,这个方法需要一个参数,我想传递的值在一个变量中。
<s:set var="myvar" value="..." />
Value of variable: <c:out value="${myvar}" /> <!-- This works OK -->
<!-- Now, need to call a method called getActionCategory(str) which takes this var value -->
Method call: <s:property value="%{getActionCategory(myvar)}"/>
字符串
这是行不通的:
myvar
作为空值输入。- 另外,将
value="%{getActionCategory(${myvar})}
插入圆括号也不起作用:* 根据标记文件中的TLD或attribute指令,attribute [value]不接受任何表达式 * - 这个没有
get
和param的简化引用也为param值引入了NULL:<s:property value="actionCategory(myvar)" />
(与此帖子相反)
唯一有效的方法是使用文字常量,比如value="%{getActionCategory('abc')}"
,我不想这样。
1条答案
按热度按时间r6vfmomb1#
我想通了:
<s:property value="%{getActionCategory(#myvar)}"/>