gpt4 book ai didi

jquery - Struts 2 结果,包括流和一些值?

转载 作者:行者123 更新时间:2023-12-01 04:52:51 25 4
gpt4 key购买 nike

我有一个 JQuery - Struts 2 应用程序。我通过 $.load() 向 struts action 发送请求,并获得 HTML 内容,一切都很好。问题是当我需要通过单个 XMLHTTPRequest 获取 HTML 内容以及显示状态的整数时。

实际上,在我的例子中,HTML 内容是服务器进程的新日志,整数值是该进程的状态。

如何将整数与内容一起发回?

这是操作配置:

<action name="getProcessUpdate" class="ProcessAction" >
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">newLogs</param>
</result>
</action>

这是在操作类中:

public class ProcessAction extends ActionSupport {

private InputStream newLogStream;

public InputStream getNewLogs() {
return newLogStream;
}

public String execute() {

newLogStream = new ByteArrayInputStream(getNewLogHTML().getBytes());

return SUCCESS;
}

private String getNewLogHTML(){
String newLong = "";

newLong = "Some new Longs";

return newLong;
}
}

这是我的 jquery 调用:

function getNewLogs(){
$( "#log" ).load('getProcessUpdate');
}

最佳答案

使用普通结果(而不是 Stream),并返回一个 JSP 片段,其中包含您想要的所有 Action 对象,然后使用 $.load() 返回它。

请记住使用 escape="false" 防止代码段中的值发生转义。

Struts.xml

<action name="getProcessUpdate" class="ProcessAction" >
<result>snippet.jsp</result>
</action>

行动

public class ProcessAction extends ActionSupport{
private String newLog;
private Integer threadState;

/* Getters */

public String execute() {
threadState = 1337;
newLog = getNewLogHTML();
return SUCCESS;
}
}

主 JSP

<script>
$(document).ready(function getNewLogs(){
$( "#container" ).load('getProcessUpdate');
});
</script>

<div id="container"></div>

片段.jsp

<%@taglib prefix="s" uri="/struts-tags" %>

<h3>Log file</h3>
<div id="log">
<s:property value="newLog" escape="false" />
</div>

<h3>Thread state</h3>
<div id="threadState">
<s:property value="threadState" />
</div>

关于jquery - Struts 2 结果,包括流和一些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17565437/

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