【发布时间】:2015-08-07 17:57:10
【问题描述】:
我正在尝试使用$.getJSON 方法从操作类中获取String 值,但我得到的结果为undefined。这是我尝试过的代码sn-ps
脚本:
$(function() {
$("#newPostionFormID").submit(
function() {
var formInput = $(this).serialize();
$.getJSON('../employeeShifts/addnewposition.action',
formInput, function(jsonResponse) {
console.log(jsonResponse.positionAdded);
});
return false;
});
});
strus.xml:
<package name="employeeShifts" namespace="/employeeShifts"
extends="struts-default,json-default">
<action name="addnewposition"
class="com.vgt.intranet.employeeshifts.action.EmployeeShiftAction"
method="addNewPosition">
<result type="json">
<!-- <param name="excludeNullProperties">true</param>
<param name="noCache">true</param>
<param name="root">positionAdded</param> -->
</result>
</action>
</package>
动作类:
public class EmployeeShiftAction extends ActionSupport {
private String position;
private String positionAdded;
public String addNewPosition() {
log.info("inside addNewPosition");
position = this.getPosition();
log.info("Position: " + position);
positionAdded = position;
log.info("positionAdded: " + positionAdded);
return Action.SUCCESS;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getPositionAdded() {
return positionAdded;
}
public void setPositionAdded(String positionAdded) {
this.positionAdded = positionAdded;
}
控制台日志:
未定义
我不知道我哪里出错了?任何帮助表示赞赏。
【问题讨论】:
-
@AleksandrM,如果我只打印
jsonResponse,它会显示Object { empID=1000, com.opensymphony.xwork2.util.OgnlValueStack.MAP_IDENTIFIER_KEY=""} -
你的action方法执行了吗?您为属性分配了哪些值?
-
@AleksandrM 执行操作方法并通过放置此标签
<param name="root">positionAdded</param>解决问题。 (PS: 这在清理并构建了 tomcat 服务器后工作)。非常感谢您的回复。 -
@AleksandrM,现在通过添加
root标签解决了这个问题,但没有添加为什么它会显示我没有在我的Action方法中添加的其他东西?是否有机会在同一个 struts 文件中获得另一个json结果类型操作值? -
不应该。也许你有一些缓存问题(如果清理工作)?可以试试最新的 S2 版本吗?
标签: java jquery ajax json struts2