当前位置: 首页 > 面试题库 >

Struts 2:动作之间的参数

封烨伟
2023-03-14
问题内容

我有以下问题:完成表单后,我需要传递一个参数(例如ID),并且操作保存该表单的值,这将转发给结果=“
success”,并且我需要调用该操作成功时附带ID和其他参数,以备以后在下一个表单中使用以保存此信息(info-form2和info.form1)…

例如:

FORM1(USER)====“成功” ==== > FORM2(ADDRESS)

userForm.html =================== > addressForm.html?user_id = X
…(其中X:Id将UserAction(方法:save)的ID传递给AddressAction(方法:newAddress))

请感谢您的帮助

提前致谢


问题答案:

您使用了“转发”一词,但听起来您想转到一个新页面(address.html)以收集有关该地址的更多信息。在这种情况下,您需要在用户操作完成后重定向到地址页。

<action name="user" class="UserAction">
  <!-- Redirect to another namespace -->
  <!-- for Struts 2.2 --> <result type="redirectAction">
  <!-- for Struts 2.0 <result type="redirect-action"> -->
    <param name="actionName">collect-address</param>
    <param name="userId">${userId}</param>
  </result>
</action>

$ {userId}语法将在UserAction上调用getUserId并传递您在问题中显示的参数:addressForm.html?user_id =
X。收集地址的成功结果可以进入addressForm.html。文档在这里。如果要避免使用其他操作,则可以尝试使用结果类型=“
redirect”,然后通过这种方式进行传递。

如果您确实要转发,则可以使用动作链接。Struts2团队的Ted Husted不鼓励这样做,但它可能对您有用。

代替动作链接,请尝试将完成此请求的所有代码放入单个动作中,并使用针对用户和地址的帮助程序或服务类来分隔和重用代码,而不是“动作链接”。



 类似资料:
  • 主要内容:创建动作:,创建视图,执行应用程序,建立多个动作:动作是Struts2框架的核心,因为他们的任何MVC(模型 - 视图 - 控制器)框架。每个URL将被映射到一个特定的动作,它提供了来自用户的请求提供服务所需的处理逻辑。 但动作也提供其他两个重要的能力。首先,操作从请求数据的传输中起着重要的作用,通过向视图,无论是一个JSP或其它类型的结果。二,动作必须协助的框架,在确定结果应该渲染视图,在响应该请求将被退回。 创建动作: 在Struts2的动作

  • 问题内容: 如果我有一个操作,其结果是对另一个类中另一个操作的redirectAction,那么是否有可能获得验证错误以显示在结果操作中?例如,在以下示例中,如果用户执行actionA(没有与之关联的视图),并且有错误,是否有任何方法可以在actionB结果(foo.jsp)中显示这些错误?还是我完全以错误的方式进行此操作? 问题答案: 可能有一种方法可以做到这一点,但我认为这不是使用struts

  • 问题内容: 我为我的一个struts2映射文件成功地使用了重定向操作,如下所示: 这是我想要做的: 换句话说,我希望传递的参数名称是动态的。有人知道这是否可能吗? 问题答案: 实际上,这是行不通的。但是,我能够做到以下几点: 我只是以为那是行不通的。

  • 主要内容:1. 动作 - Action,2. 可选动作接口,3. ActionSupport,4. 动作注释,总结在Struts2中,会花大部分的时间用在用动作来处理工作。动作类包含业务逻辑,获取资源包,保存数据,验证,并选择应发回给用户的视图的结果页面。这是Struts2的核心,所以必须要了解动作的基本概念。 1. 动作 - Action Struts 2动作不强迫你实现任何接口或扩展类,它只是需要你实现一个 execute()方法返回一个字符串来表示其应该返回的结果页面。 在struts.x

  • 问题内容: 我想将我的JSON对象从Javscript发送到Struts2 Action。 样本JSON对象 我的Jquery Ajax Struts.xml配置 我的动作课 我的问题是如何在Action类中接收JSON对象。 注意:POST OF JSON对象成功。.我只是不知道如何通过Action Class接收它。.请帮助谢谢 问题答案: 您输入的内容有错别字 您是否已在中定义图块结果和拦截

  • 使用Struts2.3.15.1 在struts2中实现文件上传。这是我已经做了很多次的事情,但是,我试图包括一些健全的检查(即最大文件大小)。我有fileUpload拦截器作为堆栈中的最后一个拦截器(即struts.xml)。我的堆栈包括一些内部拦截器以及validationWorkflowStack。我在struts中设置了以下属性。属性文件: 除了文件上传,我还在表单中传递一些其他参数。表格