【发布时间】:2014-10-09 07:21:17
【问题描述】:
我有两个类,一个是 Action 类 MyAction,另一个是 POJO 类 User。在MyAction 内部,我为User 类做了getter-setter。
然后我有index.jsp 页面供用户输入。在此,我使用 struts 2 push 标记存储在 User 类中的属性。它看起来像这样:
<s:form action="go" method="post">
<s:push value="user">
<s:textfield name="id" label="usr-id"/> <!-- user.id -->
<s:textfield name="fname" label="first-name"/> <!-- user.fname -->
</s:push>
<s:submit/>
<s:token/>
</s:form>
但是我遇到了一个错误。如果我删除 push 标签并在 User 属性前加上 user,那么它运行良好。谁能指导我,我错在哪里以及如何在表单中的输入字段中使用push标签。
【问题讨论】:
-
谢谢@Imran。所以根据 mkyong 的说法,我们必须首先创建
bean,然后将该 bean 引用到push值。您(mkyong)的解决方案很棒,但没有直接的方法吗?假设,我有一个很长的 OGNL expr,比如user.address.city... 如何实现这一点。我知道我听起来很生气,但你能帮我在推标签中的 OGNL 长链中吗? -
抱歉打扰你@Imran,但谢谢。我的困惑一扫而光。祝你有美好的一天!
-
你为什么要使用
<s:push>标签? -
不值得吗?我的意思是,如果我们对同一个对象有这么多的属性,那么将那个对象推到值堆栈的顶部不是一个好习惯……而不是每次都给那个对象加上它的属性的后缀。我做错了吗?
标签: java jsp struts2 ognl struts-tags