我有这个问题:我需要从Action获取一些简单数据并发送回JSP(已经加载),因此我必须使用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中调用操作,操作返回success
,但data
中的function(data)
没有正确获取InputStream,它只是获取整个html网页源,如图所示在图像中:
我做错了什么?提前谢谢。
答案 0 :(得分:0)
忘记javascript调用,您的问题是请求www.yourdomain.com/getSomeData
未返回包含文字John Doe
的网页。
为什么使用inputStream?如果您使用JSP作为模板系统,那么简单的解决方案就是
private String employee;
public String someData() throws Exception{
employee= "John Doe";
return "SUCCESS";
}
public String getEmployee(){
return employee;
}
<action name="getSomeData" method="someData" class="MyAction">
<result>/WEB-INF/.../templates/some_data.jsp</result>
</action>
<%= employee%>