`

调用action常见问题和返回方式总结

阅读更多

调用action常见问题和返回方式总结

1.action not found 

(1)确定Struts2配置文件中是否定义了该action,若存在,则对比一下和页面提交的url的action是否一致,常出现首字母大小写不一致问题

(2)页面提交的url中的参数类型,和action中定义的变量类型是否一致,常遇到int和string不一致的问题

(3)在JSP中定义basepath,在url前加上这个basepath

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

(4)查看自己的Struts拦截器,是否对某些特定的参数进行了过滤拦截

 

 

2action返回的类型

(1)常规

request.setAttribute("dataList", resultList);

(2)返回Json串

response.setContentType("text/xml;charset=UTF-8");

response.setHeader("Cache-Control", "no-cache");

JSONObject responseObject = new JSONObject();

 esponseObject.put("result", ispass == true ? "1" : "0");

responseObject.put("resultText", resultStr);

response.getWriter().print(responseObject.toString());

 

response.getWriter().close();

当然需要加上try catch ,可以将response.setXXX和response.getXXX以及try catch提成一个公用方法这样就可以很方面的使用

public void printJsonResult(String responseText) {

try {

response.setContentType("text/xml;charset=UTF-8");

response.setHeader("Cache-Control", "no-cache");

response.getWriter().print(responseText);

response.getWriter().close();

} catch (IOException e) {

e.printStackTrace();

}

 

若要返回一个List,可以用JSONArray 

JSONArray dataArrayList=JSONArray.fromObject(datalist);

responseObject.put("dataArrayList", dataArrayList);

 

若要返回一个Map

JSONArray obj = JSONArray.fromObject(resultList);

HashMap<String, Object> dataMap = new HashMap<String, Object>();

dataMap.put("data", obj);

JSONObject dataObject = JSONObject.fromObject(dataMap);

printJsonResult(dataObject.toString());

struts2s

struts2

分享到:
评论

相关推荐

    struts1和struts2的区别

    如果你不喜欢以字符串的形式出现在你的代码中,有个Helper接口Action可以以常量方式提供常见结果,如“success”、“none”、“error”、“input”和“login”。 另外,按照惯例,在Struts1.x中只有“execute”方法...

    java 面试题 总结

    引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

    ThinkPHP的模版中调用session数据的方法

    ThinkPHP框架的模板中调用session数据的方法有很多,可以很据情况灵活运用,常见的有以下几类: 1.在模板中直接调用{$Think.session}获取session; 2.在&lt;php&gt;&lt;/php&gt;标签直接编写php代码来调用$_SESSION数据; 3.在...

    springmybatis

    查询出列表,也就是返回list, 在我们这个例子中也就是 List&lt;User&gt; , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...

    ARCH4系统开发指南

    2.25 在Action和ServiceSpringImpl中读取资源文件 65 2.26 异常管理 65 2.26.1 分类概述 65 2.26.2 异常与系统架构的关系图 66 2.26.3 异常类的使用方法 67 2.26.3.1 ExceptionCause 67 2.26.3.2 BusinessException...

    java面试题

    答:Struts1和Struts2是两个完全不同的框架,Struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts2以核心控制器FilterDispatcher为基础,包含了框架内部的控制流程和处理机制。 ...

    HttpClient以及获取页面内容应用

    3.调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。 client.executeMethod(method); 5. 调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取...

    freemarker总结

    =可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比 较,"x","x ","X"是不等的.其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,...

    Swifter-Swift 开发者必备 Tips (第四版).zip

    Ole Begemann 在这篇帖子里提到了一种很好封装,这为我们如何借助柯里化,安全地改造和利用 target-action 提供了不少思路。 protocol TargetAction { func performAction() } struct TargetActionWrapper...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    12.4 通用的委托:System.Func和System.Action 352 12.4.1 委托没有结构相等性 353 12.4.2 外部变量 355 12.4.3 表达式树 359 12.5 小结 364 第13章 事件 365 13.1 使用多播委托来编码...

    超级有影响力霸气的Java面试题大全文档

    引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

    ARM_Linux启动分析.pdf

    setup()函数返回init(),在释放启动内存段(free_initmem())并给内核解锁以后,init()打开 /dev/console设备,重定向stdin、stdout和stderr到控制台,最后,搜索文件系统中的init程序(或者由init=命令行参数指定的...

    delphi APPLICATIONEVENTs使用

    Action的事件有OnExecute和OnUpdate,OnExecute事件在控制被触发时响应,比如说按钮被按下,菜单被按下,而OnUpdate事件是在应用程序空闲时被调用, APPLICATIONEVENTS是用来捕获程序级事件的 ApplicationEvents1...

    【计算机软件毕业设计】二手车交易平台的分析、设计与实现文献综述1.doc

    [4]简单来说,Spring是一个轻量 的控制反转和面向切面的容器框架,解决了许多在J2EE开发中常见问题的强大开源框架 ,它提供了管理业务对象的一致方法并且鼓励对接口编程而且也是对类编程的良好习惯 。 Spring框架有...

    ssh(structs,spring,hibernate)框架中的上传下载

     此外lazy="true"说明地返回整个Tfile对象时,并不返回fileContent这个字段的数据,只有在显式调用tfile.getFileContent()方法时才真正从数据库中获取fileContent的数据。这是Hibernate3引入的新特性,对于包含重量...

    ABP(2.02)框架相关Demo代码以及报错处理和中文说明手册

    “DRY——避免重复代码”是一...审计日志(自动记录每一次接口的调用者和参数) 我共享的资料包含ABP(2.02版本)的一个Demo文件以及调试时候需要填的坑的处理方法(填了蛮久才填满。。。),还包括一本ABP中文教程。

    JSTL详细标签库介绍

    语句位置、try{}程序块、try()程序块中直接和间接调用的方法中)&lt;BR&gt;&lt;BR&gt;4、 java采用终止方式异常处理,不是恢复方式的异常处理&lt;BR&gt;&lt;BR&gt;5、 发生异常时,异常周围信息(抛出对象本身类型)-------------异常处理...

    android的服务

    之前我们看到Service中有个返回IBinder对象的onBind方法,这个方法会在Service被绑定到其他程序上时被调用,而这个IBinder对象和之前看到的onServiceConnected方法中传入的那个IBinder是同一个东西。应用和Service间...

Global site tag (gtag.js) - Google Analytics