我编写了一个简单的代码来将 REST 与 Struts 2.3.24 集成。
我有我的 Struts XML:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.mapper.class" value="rest" />
<!-- Overwrite Convention -->
<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="com.pag.rest.service"/>
<constant name="struts.convention.package.locators" value="service"/>
</struts>
我的控制器类是:
package com.pag.rest.service;
public class RequestController {
// GET
public String index() {
return "SUCCESS";
}
// GET
public String show() {
return "SUCCESS";
}
// POST
public String create() {
return "Create - SUCCESS";
}
// PUT
public String update() {
return "SUCCESS";
}
// DELETE
public String destroy() {
return "SUCCESS";
}
}
每当我尝试访问该服务时,它都会显示
not found with action not mapped
异常。
请让我知道,为了使代码正常工作,我还需要做什么?
父包应该是
rest-default
。将以下常量添加到配置文件struts.xml
:
<constant name="struts.convention.default.parent.package" value="rest-default"/>
删除
<constant name="struts.convention.package.locators" value="service"/>
并将您的包名称重命名为
com.pag.rest.actions
。它将在 actions
文件夹下搜索您的控制器。