gpt4 book ai didi

java - Struts 2 操作未将所需结果返回到 Jquery Ajax 调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:24 29 4
gpt4 key购买 nike

我正在使用以下代码从 jQuery Ajax 调用一个操作,它会返回 JSP 页面的完整代码。我只需要在操作类中定义的数组列表。

dashboard.js

$.ajax({
url : 'ELD/getAllDivisions',
type : 'POST',
dataType: 'text/javascript',
success : function(data) {
alert("success");
var response = data;
alert(response);
});

DivisionAction.java

@Autowired
private DivisionService divisionService;

private List<DivisionModel> divisionList = new ArrayList<DivisionModel>();

public String getAllDivisions() {
divisionList = divisionService.getAllDivisions();
return SUCCESS;
}

struts.xml

<constant name="struts.devMode" value="true" />
<package name="DIVISION" namespace="/" extends="struts-default">
<action name="getAllDivisions" method="getAllDivisions" class="foo.bar.DivisionAction">
<result name="success">/jsp/users/AdminDashboard.jsp</result>
</action>

回应 enter image description here

我所需要的只是从操作类返回的数组列表。

最佳答案

你有两种方式:

旧的(不必要的复杂)方式

返回一个 JSP,在 JSP 中迭代你的列表并做任何你需要的事情:创建一个 JSON 数组,或编写 HTML 元素(例如 <option> 元素)等...例如:

<action name="getAllDivisions" method="getAllDivisions" class="foo.bar.DivisionAction">
<result name="success">/jsp/users/allDivisions.jsp</result>
</action>

allDivisions.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
[
<s:iterator value="divisionList" status="ctr">
{
"id" : "<s:property value='modelId' />",
"modelName" : "<s:property value='modelName' />"
}
<s:if test="%{#ctr.count < divisionList.size}"> , </s:if>
</s:iterator>
]

新(正确)方式

使用 JSON 插件,返回一个 JSON 结果,指定你的 List 作为根对象(read more):

<package name="DIVISION" namespace="/" extends="json-default">

<action name="getAllDivisions" method="getAllDivisions" class="foo.bar.DivisionAction">
<result name="success" type="json>
<param name="root"> divisionList </param>
</result>
</action>

关于java - Struts 2 操作未将所需结果返回到 Jquery Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36175569/

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