gpt4 book ai didi

java - Struts2结果类型="redirectAction"不重定向

转载 作者:行者123 更新时间:2023-12-01 04:16:00 24 4
gpt4 key购买 nike

我有一个程序,其中以下代码(不是我自己编写的)按预期工作:

.JSP代码:

<input type="submit" value="add sample" name="action:dataAddSample" id="buttonAddSample"/>

STRUTS.XML 代码:

<action name="dataAddSample" class="com.invenso.xperido.controller.DataCRUD" method="addSample">
<result name="success" type="redirectAction">
<param name="actionName">dataform</param>
<param name="id">${data.id}</param>
</result>
</action>

actionmethod addSample 返回“success”后,执行 dataform 操作,此操作将用户重定向到以下 url(使用参数 id):

http://localhost:8080/Test/data/dataform.action?id=11476

我将此代码复制到同一包和命名空间中以实现类似的工作流程,只是使用不同的操作方法(删除而不是添加):

<action name="dataDeleteSample" class="com.invenso.xperido.controller.DataCRUD" method="deleteSample">
<result name="success" type="redirectAction">
<param name="actionName">dataform</param>
<param name="id">${data.id}</param>
</result>
</action>

我通过使用 ajax 更改了调用操作的方式,而不是直接将输入按钮链接到操作:

JAVASCRIPT/AJAX 代码:

$.ajax({
type: "POST",
url: "<s:property value='urlDeleteSample'/>",
data: { sampleDBName: sampleName, sampleDBQueryName: queryName },
success: function(data, textStatus, jqXHR){ ......

URL 正是操作的链接,因此可以正常工作。通过使用调试消息,我可以确认 dataDeleteSample 触发操作,并调用 deleteSample 方法。但由于某种原因,用户没有像上面那样重定向到 url。我什至删除了方法 deleteSample 中的所有业务逻辑,只是让它返回 Action.SUCCES,但结果似乎仍然没有触发数据表单操作并重定向用户。

什么可能导致这种情况?是因为我使用了AJAX吗?我对 struts 不太熟悉,不知道为什么第一个代码可以工作,但我的代码却不能。欢迎任何关于 struts 框架如何处理这种情况的见解。

最佳答案

您不会注意到重定向,因为您正在使用 AJAX 调用它,这意味着您获得的 DATA 必须附加到 DOM 中才能查看结果。在成功事件处理程序中,您必须执行此操作。它可能在那里失败,调试它。

关于java - Struts2结果类型="redirectAction"不重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19446015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com