整理了网上的一些资料
附上一些链接:
1)struts.xml的常用配置解析
http://www.java3z.com/cwbwebhome/article/article2/TestS3.html
2)struts返回数据
http://www.360doc.com/content/08/1128/11/61497_2010494.shtml
1.最基本的,如果执行完struts2的函数后想跳转到另一个页面 ,则在struts.xml里配置
<package name="struts2" extends="struts-default">//name没有特定的要求用什么,一般是便于理解意思
<action name="example" class="xxx.xxx" >
<result name="success" >xxx.jsp</result>
</action>
</package>
不得不说一下 result的 type属性了:默认是:”dispatcher“
chain
用来处理Action链
com.opensymphony.xwork2.ActionChainResult
dispatcher
用来转向页面,通常处理JSP
org.apache.struts2.dispatcher.ServletDispatcherResult
freemaker
处理FreeMarker模板
org.apache.struts2.views.freemarker.FreemarkerResult
httpheader
控制特殊HTTP行为的结果类型
org.apache.struts2.dispatcher.HttpHeaderResult
redirect
重定向到一个URL
org.apache.struts2.dispatcher.ServletRedirectResult
redirectAction
重定向到一个Action
org.apache.struts2.dispatcher.ServletActionRedirectResult
stream
向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据
org.apache.struts2.dispatcher.StreamResult
velocity
处理Velocity模板
org.apache.struts2.dispatcher.VelocityResult
xslt
处理XML/XLST模板
org.apache.struts2.views.xslt.XSLTResult
plainText
显示原始文件内容,例如文件源代码
org.apache.struts2.dispatcher.PlainTextResult
redirect-action
重定向到一个Action
org.apache.struts2.dispatcher.ServletActionRedirectResult
plaintext
显示原始文件内容,例如文件源代码
org.apache.struts2.dispatcher.PlainTextResult
对于每一个type的具体应用,还没大弄懂,想用的时候网上应该能搜到。
2.如果想从struts只返回数据,页面不进行跳转(一般用ajax异步交换)
方法一:引入json-plugin.jar包
struts.xml按如下方式配置
<package name="json" extends="json-default">
<action name="example" class="xxxAction" >
<result name="" type="json"></result>
</action>
</package>
方法二:将action 方法的return 值设定为null,将要返回的数据通过out.print或者。print.用个例子来说明吧。
@Override
public String execute() throws Exception {
data=new ArrayList<String>();
data.add("you and me");
data.add("he and she");
String test="test";
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=GBK");
PrintStream out=new PrintStream(response.getOutputStream());
out.print(data);
out.print(test);
//或者
ServletActionContext.getResponse().getWriter().write(data.toString());
return null;
}
对应的struts.xml文件配置如下:
<package name="struts2" extends="struts-default">
<action name="example" class="xxxAction" >
<result></result>
</action>
</package>
说明:
方法二,在js前端得到的是string,你可以在前端将string转化为你想要的数据格式(比如json),例如对于jQuery可以使用jqGrid插件的方式
前端采用ajax(可以选择jQuery,ExtJS,dwr等,都对ajax进行了很好的封装)
还有待完善,求指导