【发布时间】:2017-01-26 11:28:09
【问题描述】:
我有这个问题:我需要从 Action 中获取一些简单的数据并发送回 JSP(已经加载),所以我必须管理 action 以使用 jQuery $.ajax 方法恢复该数据。所以这是我的代码:
MyAction.java
private String employee;
private InputStream inputStreamEmployee;
//these with getter/setter
public String someData() throws Exception{
employee= "John Doe";
inputStreamEmployee = new ByteArrayInputStream(
employee.getBytes(StandardCharsets.UTF_8));
return "SUCCESS";
}
struts.xml
<action name="getSomeData" method="someData" class="MyAction">
<result name="success" type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStreamEmployee</param>
</result>
</action>
data.js
function getData(){
$.ajax({
type: 'GET',
url: 'getSomeData',
dataType: 'text',
async: true,
success: function (data) {
alert(data);
},
error: function (data) {
alert('no data!!');
}
});
我检查了这个resource,但我需要 javascript 部分。所以我调试并检查了开发。 javascript方法调用java中的action,action返回success,但是function(data)中的data没有正确获取InputStream,只是获取了整个html网页源,如图:
我做错了什么?提前致谢。
【问题讨论】:
-
我也在这里尝试了一些问题,例如stackoverflow.com/questions/17093862/issue-returning-json-value 和stackoverflow.com/questions/28221528/…,但没有解决方案。
-
HTML 的内容是什么?如果您不想返回 HTML,为什么要将 contentType 设置为 HTML?为什么不使用 JSON 插件?
-
结果是通过注释显式映射的,但您可能有错误的操作映射。
标签: java jquery ajax jsp struts2