我有一个模型驱动的 Struts2 操作,可提供正确的 JSON 响应。当我重新构建操作时,我得到一个空的 JSON 响应。有没有人继承使用 Struts2 模型驱动的动作?
我尝试在 struts 配置中明确设置包含属性:
<结果名称="json" 类型="json">
<param name="includeProperties">
json响应
</param>
</结果>
下面所有操作的代码 - 不是实际使用的代码 - 为了清楚起见,我已经编辑和剥离。
提前致谢。
提供正确响应的操作:
公共类 Bike 扩展 ActionSupport 实现 ModelDriven,Preparable {
@Autowired 私人服务自行车服务;
私人 JsonResponse jsonResponse;
私人 com.ets.model.Vehicle 自行车;
私人 int id;
公共自行车(){
jsonResponse = new JsonResponse("Bike");
}
@覆盖
公共无效准备()抛出异常{
如果(id == 0){
自行车 = 新的 com.ets.model.Bike();
} 别的 {
自行车 = bikeService.find(id);
}
}
@覆盖
公共对象 getModel() {
归还自行车;
}
公共无效setId(int id){
这个.id = id;
}
公共无效setBikeService(@Qualifier(“bikeService”)服务bikeService){
this.bikeService = 自行车服务;
}
公共 JsonResponse getJsonResponse() {
返回json响应;
}
公共字符串删除(){
尝试 {
自行车.setDeleted(新日期(System.currentTimeMillis()));
bikeService.updateOrSave(自行车);
jsonResponse.addActionedId(id);
jsonResponse.setAction("删除");
jsonResponse.setValid(true);
} 捕捉(异常异常){
jsonResponse.setMessage(exception.toString());
}
返回“json”;
}
}
提供不正确响应的重组操作:
公共抽象类 Vehicle 扩展 ActionSupport 实现 ModelDriven {
@Autowired 受保护的服务自行车服务;
@Autowired 受保护的服务汽车服务;
受保护的 JsonResponse jsonResponse;
受保护的 com.ets.model.Vehicle 车辆;
受保护的 int id;
受保护的抽象服务服务();
@覆盖
公共对象 getModel() {
归还自行车;
}
公共无效setId(int id){
这个.id = id;
}
公共无效setBikeService(@Qualifier(“bikeService”)服务bikeService){
this.bikeService = 自行车服务;
}
公共无效 setCarService(@Qualifier("carService") 服务 carService) {
this.carService = 汽车服务;
}
公共 JsonResponse getJsonResponse() {
返回json响应;
}
公共字符串删除(){
尝试 {
车辆.setDeleted(新日期(System.currentTimeMillis()));
服务()。更新或保存(车辆);
jsonResponse.addActionedId(id);
jsonResponse.setAction("删除");
jsonResponse.setValid(true);
} 捕捉(异常异常){
jsonResponse.setMessage(exception.toString());
}
返回“json”;
}
}
公共类 Bike 扩展 Vehicle 实现 Preparable {
公共自行车(){
jsonResponse = new JsonResponse("Bike");
}
@覆盖
公共无效准备()抛出异常{
如果(id == 0){
车辆 = 新 com.ets.model.Bike();
} 别的 {
车辆 = bikeService.find(id);
}
}
@覆盖
受保护的服务服务(){
返还自行车服务;
}
}
公共类 Car 扩展 Vehicle 实现 Preparable {
公共汽车(){
jsonResponse = new JsonResponse("汽车");
}
@覆盖
公共无效准备()抛出异常{
如果(id == 0){
车辆 = 新的 com.ets.model.Car();
} 别的 {
车辆 = carService.find(id);
}
}
@覆盖
受保护的服务服务(){
还车服务;
}
}