struts2 提供的几种result-type有dispatcher,chain,freemarker,httpheader,redirect,redirectAction,stream,velocity,xslt,plaintext。挺丰富的。但是当前台为一个ajax调用,而且需要的返回结果只需要为String类型,或者是JSON类型时,这个时候就比较抓狂了。
所以不得不再深入研究下struts的代码。发现一个比较好的实现方法,即自己定义一个resultType实现Result接口即可。
比如为ajax自定义的result 该类主要提供ajax的字符串结果
package com.mypack.ajax
public class AJAXResult implements Result
{
private String ajax;
private HttpServletResponse rep;
/**
*
*/
private String chartSet = "GBK";
private static final long serialVersionUID = 3841999252996023829L;
public AJAXResult()
{
}
public void execute(ActionInvocation invocation) throws Exception
{
ajax = (String) invocation.getStack().findValue("ajax");
if (ajax == null)
{
throw new NullPointerException("没有定义ajax字符串结果集合,或者没有提供get方法");
}
rep = ServletActionContext.getResponse();
rep.reset();
rep.setContentType("text/html; charset=" + chartSet);
// rep.setCharacterEncoding(chartSet);
ServletOutputStream os = rep.getOutputStream();
os.write(ajax.getBytes(chartSet));
os.flush();
os.close();
}
public String getChartSet()
{
return chartSet;
}
public void setChartSet(String chartSet)
{
this.chartSet = chartSet;
}
}
而我们可以在struts.xml里面配置
<package name="ajax-default">
<result-types>
<result-type name="ajax"
class="com.mypack.ajax.AJAXResult">
</result-type>
</result-types>
<action name="cardInfo" class="CardInfoACT">
<result name="ajax" type="ajax"/>
</action>
</package>
当然,我们也可以将这个类封装到另外的包里,然后放到全局的result里被所有的类引用该类型。前期是要引用ajax-default这个包。
相关推荐
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
struts2-json-plugin,Struts JSON插件
struts2-ssl-plugin-1.2.1.jar
struts2-convention-plugin-2.3.32
struts2-dojo-plugin-2.3.4 jar 日期控件的jar包 需要的自行下载
struts2-convention-plugin-2.3.15.1.jar
struts2-core-2.2.3.1-sources.jar struts2-core-2.2.3.1-sources.jar struts2-core-2.2.3.1-sources.jar
struts2-dojo-plugin-2.2.1.jar, 直接导入到Struts2项目里即可,注意版本。
struts2-convention-plugin-2.3.24.1
struts2-dojo-plugin-2.3.15.3.jar.zip
struts2-core-2.5.18.jar包下载,支持struts2的类库下载
struts2-core-2.5.10.jar ,struts核心包,struts2-core-2.5.10.jar
struts2-jquery-plugin-3.1.0.jar
struts2-jfreechart-plugin-2.1.8.1.jar
默认的struts2-config-browser-plugin包中的ftl文件include标签路径用的相对路径,会找到包内的include文件,将包内ftl里include的路径改成的/开头的全路径。
<bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class="com.struts2.MyDefaultActionMapper" /> <constant name="struts.mapper.class" value=...
struts2-convention-plugin-2.1.6.jar
struts2的jar之一struts2-core-2.0.14.jar