yonbip-code-gen-mcp
Version:
YonBIP高级版代码生成MCP
88 lines (76 loc) • 3.79 kB
Markdown
# 控制器Action开发步骤
1. 创建控制器`Action`的java类,以`Action`结尾
* 在根据用户输入生成`doAction`方法里的逻辑时,注意采用合适的方式转换`request`参数,得到具体的参数对象或者参数Map
* 根据实际具体的业务需要选择服务类
* 组装返回的数据
2. 创建控制器`Action`配置文件,以`action.xml`结尾
3. 创建控制器`Action`的鉴权文件,以`authorize.xml`结尾
## 1.创建控制器Action的java类
* 其路径为:`src/client/nccloud/web/模块编码/应用编码/action/应用+具体功能+Action.java`
### Demo
```java
import nccloud.framework.core.json.IJson;
import nccloud.framework.service.ServiceLocator;
import nccloud.framework.web.action.itf.ICommonAction;
import nccloud.framework.web.container.IRequest;
import nccloud.framework.web.json.JsonFactory;
import nc.md.persist.framework.IMDPersistenceQueryService;
import POJO类或者VO实体类全路径;
public class DemoAction implements ICommonAction {
public Object doAction(IRequest request) {
try {
//从request参数转换成DTO对象
String read = request.read();
IJson json = JsonFactory.create();
//如果需要从前端获取某一个参数或者某几个参数,可以使用如下方式
//Map<String,Object> paramMap = json.fromJson(read, HashMap.class);
//从参数Map中获取对应的参数值
//String param1 = (String)paramMap.get("xx参数key");
//如果需要从前端获取一个参数对象,可以使用如下方式
//POJO类或者VO实体类 info = json.fromJson(read, POJO类或者VO实体类.class);
//从参数对象中获取对应的参数值
//String param = info.getParam();
//根据具体的业务要求,选择对应的服务类
//如果是查询功能相关,一般选用IMDPersistenceQueryService;
IMDPersistenceQueryService queryService = ServiceLocator.find(IMDPersistenceQueryService.class);
//如果是增删改功能相关,一般选用IMDPersistenceService;
IMDPersistenceService mngService = ServiceLocator.find(IMDPersistenceService.class);
//TODO: 实现具体的业务逻辑
//返回组装好的数据
return "返回组装好的数据";
} catch (RuntimeException e) {
throw new RuntimeException(e);
}
}
}
```
## 2.创建控制器Action配置文件
* 其路径为:`src/client/yyconfig/modules/模块编码/应用分类/应用编码/config/action/应用编码_action.xml`
* 如果有路径一致的xml,可以把action标签的内容插入到路径一致的xml文件的对应位置
### Demo
```xml
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<actions>
<action>
<name>模块编码.应用编码.应用+具体功能+Action</name>
<label>具体功能Action</label>
<clazz>nccloud.web.模块编码.应用编码.action.应用+具体功能+Action</clazz>
</action>
</actions>
```
## 3.创建控制器Action的鉴权文件
* 其路径为:`src/client/yyconfig/modules/模块编码/应用分类/应用编码/config/authorize/应用编码_authorize.xml`
* 如果有路径一致的xml,可以把action标签的内容插入到路径一致的xml文件的对应位置
### Demo
```xml
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<authorizes>
<authorize>
<appcode>*</appcode>
<actions>
<action>模块编码.应用编码.应用+具体功能+Action</action>
</actions>
</authorize>
</authorizes>
```