java并或非一起_java-REST和非RESTful URL的在一起不起作用

我所有试图获得这两个纯静态配置以及至少一个非静态URL的有效示例的所有尝试均失败了.

我有一个模型,带有几个测试字段的收据.

纯REST解决方案可以按预期工作,因此请执行以下操作:

这些结果效果很好:

receive.json =>显示所有收据清单

receive / 1.json =>显示ID为1的收据

但是,如果我尝试将静态URL与非静态URL混合使用(就像在Wiki文章中告诉我的那样):

它炸毁了这个:

Struts has detected an unhandled exception:

Messages:

com.immaculate.receipto.controllers.ReceiptController.execute()

File: java/lang/Class.java

Line number: 1,778

我很困惑.为什么要搜索execute()?

execute()应该是存在于动作上的方法.我没有给它一个动作,而是给了它一个像以前一样的控制器.

我该如何解决?

这是ReceiptController:

public class ReceiptController implements ModelDriven {

private ReceiptManager receiptManager = new ReceiptManager();

private String id;

private Receipt model = new Receipt();

private Collection list;

public Object getModel(){

if(list==null){

return model;

} else {

return list;

}

}

public HttpHeaders create() {

receiptManager.save(model);

return new DefaultHttpHeaders("show");

}

public HttpHeaders show() {

model = receiptManager.find(id);

return new DefaultHttpHeaders("show");

}

public HttpHeaders destroy() {

model = receiptManager.destroy(id);

return new DefaultHttpHeaders("show");

}

public HttpHeaders index() {

list = receiptManager.list();

return new DefaultHttpHeaders("show");

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

}

显然我在这里做错了.除了这里说明的内容,我是否还需要了解其他内容?

另外,我该怎么读? :

这是否意味着以/ rest开头的所有内容都将映射到我的纯净宁静控制器,进而将其映射到我的收据,而没有/ rest前缀的所有内容都将映射到默认的struts映射?还是我在这里完全走错了方向?

解决方法:

基于前缀的动作映射器将查找映射委托给由定义的对应映射器

这意味着所有在最后一个斜杠之前的/ rest中的URL都将映射到其余映射器,其他映射到默认映射器.如果您有一个收据控制器,则应使用值“ / receipt:rest,:struts”.

参考文献:

标签:rest,struts2,struts2-rest-plugin,json,java

来源: https://codeday.me/bug/20191120/2047590.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值