Struts2 - 在表单提交后重新填充包含更新数据的页面

时间:2012-09-02 11:40:58

标签: struts2

我有一个名为diary.jsp的jsp页面,其中与之关联的动作类称为DiaryAction,在此类中,我使用populate方法预填充字段。当我第一次使用URL中的PopulateDiary.action访问页面时,这正如预期的那样工作。

<li><a href="populateDiary.action">Profile</a></li>

然而,作为此页面的一部分,我有一个表单,用户可以在其中添加新的日记条目。在提交此表单时,我呼吁采取以下行动:

<action name="addDiaryEntry" method="addDiaryEntry"    
    class="spirit.of.community.action.classes.DiaryAction">
    <result name="success">/diary.jsp</result>
</action>

这是调用正确的代码来添加新的日记条目。但是,在这个动作方法的成功之后,我想再次显示相同的页面,即diary.jsp和填充的数据(包括更新的条目)。我已将此行放在我的diary.jsp页面中,希望这可以实现我的目标:

<s:action name="populateDiary"></s:action>

现在当diary.jsp加载时,我可以看到正在调用的populate方法。但该页面未填充任何数据。如果它具有任何重要性,提交表单时的URL是 - “/ addDiaryEntry.action”。任何人都可以建议我如何调用我的addEvent方法添加新条目,然后重新加载包含更新数据的页面?任何建议表示赞赏!提前谢谢!

1 个答案:

答案 0 :(得分:1)

你有几种方法可以实现这一目标,而这里是

  1. 当您调用addDiaryEntry操作添加日记实例时,您可以创建所有条目的列表,并可以使用迭代器按照您的方式显示数据。
  2. 其他方式是<s:action name="populateDiary" executeResult="true">
  3. 执行结果判断是否应该执行/渲染此操作的结果(可能是视图)。

    有关详细信息,请参阅Execute action