java使用动作数据模型值调用Struts2 JSP中的静态方法帮助器类
我是个菜鸟。我在一个动作中使用Struts2和典型的数据模型UserItem
。与Struts标记<s:property value="userItem.foo"/>
一起使用时,数据模型看起来不太好
我想做的是编写一个静态util方法Helper.printNice(Foo)
,它接受参数Foo并在用户友好的显示中打印出Foo中包含的值
如何将Struts属性标记与静态方法一起使用?像这样的
com.helper.Helper.printNice(<s:property value="userItem.foo"/>)
原因是我的web应用程序正在读取由供应商填充的数据,看起来像[“string1”、“string2”,…]在许多专栏中。显然,我不想以这种格式向最终用户显示。helper方法将使其看起来像string1<;br>;第2条<;br>;,等等
# 1 楼答案
编辑
从2.3.20及更高版本,static method access won't work anymore,即使在配置中激活
对于静态方法访问,您需要:
在Struts中。xml
在JSP中
但正如里斯所指出的,如果不是严格必要的话,这应该避免,因为这不是最佳实践
在您的特定情况下,我猜对象包含[“String1”、“String2”、…]是一个列表,或者向量,或者类似的东西
那么JSP中只需要
<s:iterator>
标记,如下所示:# 2 楼答案
对于静态方法访问,您必须在
struts.xml
文件中添加以下常量例如: struts。xml:
然后,您可以通过各种方式从JSP访问它:
示例-1:
在哪里
vaannila
=包名李>SampleAction
=类名李>getSTR()
=方法名李>示例-2:
在哪里
vs
=值堆栈李>getSTR()
=方法名李>示例-3:
在哪里
STR
=STR
在Java类中用getter和setter方法声明并初始化为静态字符串