文章摘要
本文介绍了一个Java Action类 `DictsAction` 的实现,该类继承自Spring框架的Action接口,并使用了以下关键组件:
1. **类与包**:类 `DictsAction` 位于 `oa.sys016.oagzxxgl.action` 包中,继承自 `Action` 接口。
2. **核心功能**:该Action类的主要功能是处理一个特定的Action请求类型(`actionType`),并根据请求参数判断是否执行查询操作。
3. **查询逻辑**:当 `actionType` 为 "jieci"(查询届次)时,调用 `getJieciJson` 方法进行查询。该方法通过数据库查询 `ZH_GZ_INFOX` 表,获取ID和名称字段,并将结果转换为JSON格式输出。
4. **编码与响应类型**:在响应内容中设置为 `application/json` 格式,并使用UTF-8编码。
5. **异常处理**:在try-catch块中,捕获执行过程中可能抛出的异常,并打印详细的错误信息。
6. **JSON处理**:使用 `JSONArray` 对象处理结果数据,将其转换为JSON格式供输出。
总结来看,该Action类的主要功能是处理查询届次的Action请求,并通过Spring框架和相关依赖实现数据的JSON格式化输出和错误处理。
package oa.sys016.oagzxxgl.action;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cn.com.chx.bo.AppBo;
public class DictsAction extends Action{
private AppBo appBo=null;
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 设置编码
response.setContentType(“application/json;charset=UTF-8”);
response.setCharacterEncoding(“UTF-8”);
PrintWriter out=response.getWriter();
appBo=new AppBo();
try {
// 获取ActionType
String actionType=request.getParameter(“actionType”);
if (actionType !=null && actionType.equals(“jieci”)) { // 查询届次
String jieciJson=getJieciJson();
out.print(jieciJson);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
out.close();
}
return null;
}
private String getJieciJson() {
// 查询届次
List jieciList;
try {
jieciList=appBo.query(“SELECT ID AS CODE,ZH_NAME AS NAME FROM ZH_GZ_INFOX”);
List<Map<String, String>> lists=new ArrayList<Map<String, String>>();
if (jieciList.size() > 0) {
for (int i=0; i < jieciList.size(); i++) {
Map<String, String> maps=new HashMap<String, String>();
maps.put(“code”,
(String) ((HashMap) jieciList.get(i)).get(“CODE”));
maps.put(“name”,
(String) ((HashMap) jieciList.get(i)).get(“NAME”));
lists.add(maps);
}
}
// [